消耗SOAP Web服务,“未提供服务证书。在ServiceCredentials中指定服务证书。”

时间:2019-02-19 13:51:47

标签: c# web-services wcf soap x509certificate2

我正在努力使用HTTPS上的SOAP 1.2 Web服务,而我必须使用证书进行身份验证。因此,我收到了* .p12(PKCS12)客户证书(由DOMAIN.COM颁发给COMPANY,由发行人签名)(由DOMAIN.COM颁发给DOMAIN.COM)。

我的app.config文件是:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.serviceModel>
        <bindings>
            <customBinding>
                <binding name="DistributorServiceBinding">
                  <security authenticationMode="AnonymousForCertificate">
                    <issuedTokenParameters />
                    <localClientSettings />
                    <localServiceSettings />
                    <secureConversationBootstrap />
                  </security>
                  <textMessageEncoding messageVersion="Soap12" />
                  <httpsTransport />
                </binding>
            </customBinding>
        </bindings>
        <client>
            <endpoint address="https://subdomain.domain.com/*/*/*"
                binding="customBinding" bindingConfiguration="DistributorServiceBinding"
                contract="*" name="DistributorServicePort" />
        </client>
    </system.serviceModel>
</configuration>

当我尝试通过Web服务放置一些数据时,出现以下错误:

  

未提供服务证书。指定服务证书   在ServiceCredentials中

这是我的第一个问题:

  • 我应该在此处设置哪个证书?是从* .p12文件导入的那个证书,还是我应该从服务所有者那里获得的完全不同的证书?

  • 如果以一种方式发送数据-我仅发送数据,但没有获取-我可以关闭serviceCertificate验证吗?

我尝试使用* .p12文件中的证书,该文件已发布到DOMAIN.COM,并且正在对我的客户端证书进行签名,但是随后,我收到此错误:

  

对发送邮件的身份检查失败。预期的DNS身份   远程端点的名称是“ SUBDOMAIN.DOMAIN.COM”,但远程端点   端点提供了DNS声明“ DOMAIN.COM”。如果这是合法的   远程终结点,可以通过显式指定DNS来解决问题   身份“ DOMAIN.COM”作为EndpointAddress的身份属性   创建频道代理。

这是我的第二个问题:

  • 我是否应该将提到的证书用作服务证书?应该将它发布给SUBDOMAIN.DOMAIN.COM还是* .DOMAIN.COM而不是DOMAIN.COM,所以WS所有者错误吗?
  • 我是否需要颁发给* .DOMAIN.COM并由服务方所有者使用的证书?

我将非常感谢您的帮助!

0 个答案:

没有答案