有没有办法使用WCF SSL与不要求客户端证书在客户端计算机上安装NetTcpBinding的? (SSL V2如果我没有记错的话)。
我们希望服务器证书将在客户端的可信商店认证服务器的公钥,这意味着,只有在服务器计算机将举行一个私钥证书加密的消息。
我们正在使用NetTcpBinding的,而不是customBinding两侧。 如果其能完成博,什么是它的正确配置? (在客户端和服务器CONFIGS)
提前致谢。
这里有我的WCF CONFIGS。
服务器配置:
<configuration>
<system.serviceModel>
<bindings>
<netTcpBinding>
<binding name="TcpSecureBinding">
<security mode="Transport">
<transport clientCredentialType="Certificate"/>
</security>
</binding>
</netTcpBinding>
</bindings>
<behaviors>
<serviceBehaviors>
<behavior name="ServiceCredentialsBehavior">
<serviceDebug includeExceptionDetailInFaults="True" />
<serviceMetadata httpGetEnabled="true" />
<serviceAuthorization
principalPermissionMode="UseWindowsGroups">
</serviceAuthorization>
<serviceCredentials>
<windowsAuthentication includeWindowsGruops="true"
allowAnonymousLogons="false"/>
<clientCertificate>
<authentication certificateValidationMode="none"/>
</clientCertificate>
<serverCertificate
findValue="thumbprint"
storelocation="LocalMachine"
x509FindType="FindMyThumbprint"
storeName="My"/>
</serviceCredentials>
</behavior>
</serviceBehaviors>
</behaviors>
<services>
<service behaviorConfiguration="ServiceCredentialsBehavior"
name="ServiceModel.Calculator">
<endpoint address="net.tcp://localhost:8040/Calculator"
binding="netTcpBinding"
bindingConfiguration="TcpSecureBinding"
contract="ServiceModel.ICalculator" >
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
</service>
</services>
</system.serviceModel>
</configuration>
客户端配置:
<configuration>
<system.serviceModel>
<client>
<endpoint address="net.tcp://localhost:8040/Calculator"
behaviorConfiguration="endpointCredentialBehavior"
binding="netTcpBinding"
bindingConfiguration="Binding1"
contract="ServiceModel.ICalculator">
<identity>
<dns value="localhost"/>
</identity>
</endpoint>
</client>
<behaviors>
<endpointBehaviors>
<behavior name="endpointCredentialBehavior">
</behavior>
</endpointBehaviors>
</behaviors>
<bindings>
<netTcpBinding>
<binding name="Binding1">
<security mode="Transport">
<transport clientCredentialType="Windows" />
</security>
</binding>
</netTcpBinding>
</bindings>
</system.serviceModel>
</configuration>
IM加入我当前的服务器和客户端CONFIGS。 另一个问题:
在我们要在客户端进行身份验证疗法服务器的证书认证级别(我想服务器的公钥应该在trustedPeople店),这可能吗?
你建议我们使用传输安全或消息?
如果我们想通过NTLM(clientCredentialType =的Windows)来验证客户端和服务器可以在除服务器的证书认证完成,或者只是可以应用其中之一吗? 到现在为止,我们已经使用NTLM身份验证。
现在即时得到异常:“请求的升级不支持‘的net.tcp://服务器名称:8040 / **’,这可能是由于不匹配的绑定(客户端上启用例如安全性,而不是在服务器上) “。 我理解,因为客户端在OM证书使用Windows安全和服务器,但是当IM客户不断变化的安全证书也,即时得到一个错误发生这样的错误:“客户端证书不提供”。 但我不希望设置客户端的证书和多数民众赞成我的主要问题的一部分。
我们看到,我们可以使用服务器证书验证此标签:
<identity> <certificate encodedValue="encoded certificate"/> </identity>
但是,我认为这验证通过身份由一个编码的证书时,我们preffer该证书的标识将通过搜索在客户端的存储(trustedPeople)服务器的公钥来执行完成。 做到这一点的信息是真的吗? 这种身份的这个标签替代搜索客户端的公钥“S受信任的存储?
希望你能够再次协助这一方式,谢谢。