【问题标题】:How to configure WCF to use HTTP with Client Certificate?如何配置 WCF 以使用带有客户端证书的 HTTP?
【发布时间】:2012-12-02 09:21:31
【问题描述】:

如何配置 WCF 以使用带有客户端证书的 HTTP(无 ssl)?

在服务端,我尝试了以下方法:

<bindings>
            <basicHttpBinding>
                <binding name="binding1">
                    <security mode="TransportCredentialOnly">
                        <transport clientCredentialType="Certificate"></transport>
                    </security>
                </binding>
            </basicHttpBinding>
        </bindings

但它抱怨:

Certificate-based client authentication is not supported in TransportCredentialOnly security mode. Select the Transport security mode. 

谢谢,

【问题讨论】:

  • 当你将它设置为Transport时会发生什么?
  • 传输意味着它需要 SSL 和 HTTPS 地址,这不是我想要的。我只需要测试客户端证书是否正常工作。

标签: c# asp.net wcf ssl transport


【解决方案1】:

我认为我没有完全理解你的问题。

如果您想在绑定 (basicHttpBinding) 上配置安全性以使用客户端证书(对客户端进行身份验证),据我所知,在 http 上执行此操作的唯一方法是使用消息安全性,您可以找到wcf samples 中的示例。

正如结果异常和on a Distributed Services Support Team blog所述:

注意:使用 TransportCredentialOnly 模式,您不能使用基于证书的客户端身份验证: TransportCredentialOnly 安全模式不支持基于证书的客户端身份验证。

【讨论】:

    【解决方案2】:

    我从您的问题中了解到,您想使用尚未由 CA(证书颁发机构)颁发的自定义证书。

    在这种情况下,您需要在服务器上安装它,如果您在 .NET 中使用它们,它们也需要在 IIS 中附加到您的网站。

    希望这行得通

    【讨论】:

    • 这不正确,也与我的问题无关。仅供参考,就应在何处安装哪个证书而言。根 CA 应安装在所有涉及的服务器(服务和客户端)上,但客户端证书只需要安装在客户端计算机上。
    猜你喜欢
    • 2012-07-28
    • 1970-01-01
    • 2011-06-24
    • 1970-01-01
    • 2017-01-24
    • 2016-03-09
    • 1970-01-01
    • 1970-01-01
    • 2012-02-06
    相关资源
    最近更新 更多