我正在使用此方案开发自托管WCF服务:
wsHttpbinding
*Transport security layer
Client Credential = Certificate
我创建了一个自签名的RootCA证书和一个" www.server.com"和" www.client.com" RootCA证书颁发的证书。
这是客户端环境配置: 我需要在受信任的根证书颁发机构存储中安装RootCA公钥,并在我的商店中安装www.client.com证书。
像这样一切正常。
但我的问题是,在MSDN示例中描述的这种情况下,www.client.com公钥也不应该在服务器机器的TrustedPeople存储中?因为如果我想要排除客户端,我应该在服务器端拥有控件。 WCF上的一些配置允许我这样做吗?
ps:在上面的MSDN链接中,在第一段中引用此引用The server’s certificate must be trusted by the client and the client’s certificate must be trusted by the server.
但这不起作用。
答案 0 :(得分:1)
我认为,为了使用证书完全控制客户端身份验证,您可能需要完全了解证书撤销过程。以下文章提供了证书撤销的良好概述,包括验证链和CRL缓存。
http://technet.microsoft.com/en-us/library/ee619754(v=ws.10).aspx
关于WCF配置,您可以访问以下控制客户端证书验证的配置值:
X509ClientCertificateAuthentication.RevocationMode
X509ServiceCertificateAuthentication.CertificateValidationMode
http://msdn.microsoft.com/en-us/library/system.servicemodel.security.x509clientcertificateauthentication.revocationmode(v=vs.110).aspx
http://msdn.microsoft.com/en-us/library/system.servicemodel.security.x509servicecertificateauthentication.certificatevalidationmode(v=vs.110).aspx
问候。