我正在努力使用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的身份属性 创建频道代理。
这是我的第二个问题:
我将非常感谢您的帮助!