WCF-认证客户端是否需要服务证书?

标签 wcf certificate client-certificates

我认为WCF身份验证的思维模型存在差距,希望有人可以帮助我填补这一空白。

因此,我正在创建WCF服务,并希望让客户端使用证书和消息级安全性进行身份验证。我希望该服务使用链信任来验证它们,以便不需要在该服务上安装的每个客户端证书。目前,我对让服务向客户端进行身份验证不感兴趣。

这是我对执行此操作所需的理解:

  • 客户端需要由服务端受信任的CA签署的证书。
  • 服务需要为该CA安装CRL。
  • 服务配置应该已打开消息安全性,指定clientCredentialType =“Certificate”,并为客户端证书验证提供链信任。
  • 客户端配置应启用消息安全性,指定clientCredentialType =“Certificate”,以及指示如何在存储中查找客户端证书的端点行为。

  • 客户端向服务发出请求,发送其证书。该服务将看到客户端的证书已由其受信任的CA签名,并允许请求通过。

    现在,我发现此过程的所有演练还包括为服务创建证书的步骤。他们都没有解释这是什么意思,这让我很不高兴。如果我只想对客户端进行身份验证,为什么需要服务证书?

    最佳答案

    你是对的。从理论上讲,不需要服务器证书,在实践中,wcf会强制您使用证书。好消息是,您应该为服务器使用虚拟证书,并将ProtectionLevel设置为SignOnly。我建议阅读this article,它讨论了类似的场景,并且最相关。

    关于WCF-认证客户端是否需要服务证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11020818/

    相关文章:

    objective-c - 在 objective-c 中使用客户端证书调用 SOAP WebService

    javascript - 通过 JavaScript 发送客户端证书。

    certificate - 如何以编程方式获取 X509 证书的完整证书链?

    android - Android 4 ICS 上带有 SSL 客户端证书的 WebView

    c# - 消息队列服务消息未到达

    c# - 如何以编程方式从客户端捕获第 3 方 Web 服务 xml

    .NET HttpClient - 有条件地忽略证书错误

    java - 如何配置我的 Web 应用程序来运行/读取我的自定义 TrustStore?

    asp.net - 是否可以在 AZURE 的同一个网站门户中部署 WCF 服务和网站?

    c# - 如何为 Visual Studio 使用的 IIS Express 添加 net.tcp 协议(protocol)支持?