【问题标题】:How to revoke a client certificate in WCF?如何在 WCF 中撤销客户端证书?
【发布时间】:2014-09-04 12:28:23
【问题描述】:

我正在开发具有这种情况的自托管 WCF 服务:

wsHttpbinding
*Transport security layer
Client Credential = Certificate

我创建了一个自签名的 RootCA 证书和一个“www.server.com”和一个由 RootCA 证书颁发的“www.client.com”证书。

这是客户端环境配置: 我需要在 Trusted Root Certification Authorities 存储中安装 RootCA 公钥,在 My store 中安装 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. 但这不起作用。

【问题讨论】:

    标签: c# wcf ssl certificate


    【解决方案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

    问候。

    【讨论】:

    • 是的,我知道这些属性。但 CertificateValidationMode 仅适用于消息安全模式,不适用于传输安全模式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-04
    • 2012-05-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-09
    • 2013-10-07
    相关资源
    最近更新 更多