gpt4 book ai didi

wcf - 如何在具有传输安全性的 WCF 调用中使用自签名客户端证书?

转载 作者:太空宇宙 更新时间:2023-11-03 13:40:40 26 4
gpt4 key购买 nike

我有一个使用 WS-HTTP 绑定(bind)和传输安全性 (SSL) 的 WCF 服务(内部编写)。我们正在使用客户端证书和可接受证书的白名单(证书带外提供给我们)来验证调用者。因此,我们使用自定义验证器(例如派生自 System.IdentityModel.Selectors.X509CertificateValidator 的类)来执行数据库查询以检查白名单。

它适用于以下情况:我们有一个用于开发的根证书,由开发团队(使用 OpenSSL)颁发。此根在托管我们的 WCF 服务的服务器上是受信任的(例如,安装在受信任的第三方 CA 证书存储中)。测试客户端配置为提供由该根签名的证书。此案例的行为符合预期。

它在以下情况下不起作用:客户端向服务提供自签名证书。在这种情况下,客户端会收到错误消息“HTTP 请求被客户端身份验证方案‘匿名’禁止”,而且——奇怪的是——服务的证书验证器甚至没有运行。我们没有任何机会竖起大拇指。客户端证书被比我们的验证器低的层拒绝。

如何在我的服务中使用自签名客户端证书?

最佳答案

你不能。在 WCF 中,WS-HTTP 传输安全是 SSL。我的错误是由于双方之间的 SSL 协商失败造成的。

这种协商的正常情况如下:服务向客户端发送它信任的根证书列表。客户端检查此列表并找到服务器认为可信的证书并发送它。

在我的错误案例中,客户端正在检查服务器的列表并确定其证书不可信。此时客户端通常会尝试协商匿名访问,这在我的情况下是被禁止的,因此协商失败。

在 WS-HTTP 绑定(bind) + 传输安全方案中,WCF 不支持自签名客户端证书或不受信任的 CA 颁发的证书,即使您使用自定义验证模式也是如此。它确实支持消息安全中的这种情况。我怀疑 Net.TCP 支持这种情况,但还没有测试过。

关于wcf - 如何在具有传输安全性的 WCF 调用中使用自签名客户端证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24290135/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com