如何撤销WCF中的客户端证书?

时间:2014-09-04 12:28:23

标签: c# wcf ssl certificate

我正在使用此方案开发自托管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.但这不起作用。

1 个答案:

答案 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

问候。