如果我从受信任的CA获得了SSL证书,在通过net.tcp连接到WCF服务时,是否仍需要将SSL证书导入客户端计算机?
当我使用wsdualhttpbinding时,我可以通过https进行连接。现在我切换到net.tcp并添加了
<bindings>
<netTcpBinding>
<binding name="InsecureTcp" maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647">
<security mode="TransportWithMessageCredential">
<message clientCredentialType="Certificate"/>
</security>
</binding>
</netTcpBinding>
</bindings>
到web.config文件。
我可以通过https访问WSDL文件但是当我尝试从我的客户端连接时,我收到以下错误:
其他信息:未提供客户端证书。在ClientCredentials中指定客户端证书。
我尝试将自定义行为添加到客户端配置文件中:
<behaviors>
<endpointBehaviors>
<behavior name="CustomBehavior">
<clientCredentials>
<clientCertificate findValue="example.com" x509FindType="FindBySubjectName"
storeLocation="LocalMachine" storeName="My" />
</clientCredentials>
</behavior>
</endpointBehaviors>
</behaviors>
但这仅适用于将证书导入我的本地证书存储区......
答案 0 :(得分:3)
我希望我明白你的观点 - 你不想使用客户端证书进行身份验证?然后修改<security mode="TransportWithMessageCredential">
<message clientCredentialType="Certificate"/>
</security>
clientCredentialType为以下之一:
http://msdn.microsoft.com/en-us/library/system.servicemodel.httpclientcredentialtype(v=vs.110).aspx
如果需要,您可以使用多种身份验证机制: http://msdn.microsoft.com/de-de/library/ms731316(v=vs.110).aspx