摘要:X509数字证书可以用于Wcf服务端和客户端通信时的身份验证;也就是不仅是服务端进行身份认证,客户端在向服务端发起请求时,也需验证客户端的身份是否合法。证书的配置通常是在服务端和客户端的web.config文件中配置。要注意Makecert.exe生成的X509证书存储的位置是在LocalMachine存储位置。
在本示例中,服务端证书是WosServer, 客户端证书是WosClient(如何生成X509证书文件,请大家参考该系列的第一篇文章:X509数字证书之一:加密和解密),分别给出服务端web,config文件,客户端web.config文件的关于服务配置部分的内容。
1. 证书(本地计算机)
证书文件的读写权限可以在“管理私钥”的菜单位置进行配置,一般涉及到的用户用IIS 应用程序池用户,测试时候也可以是Everyone身份用户。
2. 服务端web.config 内容
要配置的主要节点信息如下:
1> binding 类型: wsHttpBinding
2> binding安全消息节点属性clientCredentialType :Certificate
3> ServiceBehavious节点中certificateValidationMode 配置为:PeerTrust
4> serviceCertificate 节点配置:
findValue="WosServer"
storeLocation="LocalMachine"
storeName="My"
x509FindType="FindBySubjectName"
全部文件内容如下:
<system.serviceModel>
<bindings>
<wsHttpBinding>
<binding name="wsHttpEndpointBinding">
<security>
<message clientCredentialType="Certificate"/>
</security>
</binding>
</wsHttpBinding>
</bindings>
<services>
<service name="PayWcf.Service1" behaviorConfiguration="PayWcf.Serv