【问题标题】:WCF trust client certificates only from one root caWCF 仅从一个根 ca 信任客户端证书
【发布时间】:2014-11-09 09:12:17
【问题描述】:

当使用服务器和客户端证书保护 WCF 服务时,有一种简单的方法可以确保服务提供商证书(服务器证书)的身份,方法是将发件人证书的公钥或指纹与预期值进行比较。

http://msdn.microsoft.com/en-us/library/ff648360.aspx 上,这在第 8 步中进行了说明。您可以在端点部分中使用身份元素配置 app.config 文件,您可以在其中传递服务器证书的预期编码指纹值。接收到的服务证书和预期值之间的比较确保我正在与预期的服务器通信。

但现在我考虑服务器的观点。服务器的证书存储中可以有多个 RootCA 证书。如果从请求者发送的客户端证书由这些 RootCA 之一颁发(并签名),我的服务将信任此客户端证书。如何确保我的服务仅信任由一个确定的 RootCA 颁发的证书?以及如何配置一个受信任的 RootCA?

(我认为这可能是某种等效的证书固定方式,用于在 RootCA 上颁发的客户端证书)

【问题讨论】:

    标签: wcf https ssl-certificate digital-certificate client-certificates


    【解决方案1】:

    实现此目的的唯一方法是推出您自己的自定义 x509 证书验证器。然后对于每个传入的请求,您可以简单地检查以确保客户端证书是由您的根 CA 颁发的。这实际上很容易做到。您可以在此处找到实现此功能的步骤:

    How to: Create a Service that Employs a Custom Certificate Validator

    【讨论】:

    • @Scott Thornton 这对我有用。通过这种方式,我能够拒绝所有不需要的证书(证书颁发者)并验证证书的所有者(证书主题)
    猜你喜欢
    • 2014-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-19
    • 2010-09-15
    • 2012-07-03
    • 1970-01-01
    相关资源
    最近更新 更多