gpt4 book ai didi

c# - HttpListenerRequest 未返回客户端证书

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

我正在使用 HttpListener 创建一个非常基本的网络服务器。我已将它设置为使用 SSL,使用 httpcfg 工具绑定(bind)到适当的端口和证书。这似乎工作正常。我现在想使用客户端证书身份验证。因此,我在 HttpListenerRequest 对象上添加了对 GetClientCertificate 的调用,但它总是返回 null。我的测试客户端非常简单:

HttpWebRequest webReq = (HttpWebRequest) WebRequest.Create("https://127.0.0.1:8080/ssltest/");
webReq.ClientCertificates.Add(new X509Certificate2("ssltest.pfx", "ssltest"));
webReq.GetResponse();

我注意到 httpcfg 工具有一个标志,指示是否应协商客户端证书,因此我尝试指定该标志 (-f 2),但我仍然没有获得客户端证书。我也遇到了this Microsoft support issue这看起来很相关,但我使用的是最新的 .NET 2.0 服务包,而且我还尝试了 httpcfg 标志,这两者都应该可以避免这个问题。

我假设我在这里遗漏了一些明显的东西。有什么想法吗?

编辑:我刚找到 this question这似乎非常相关(甚至可能是重复的?)。不幸的是,这个问题也没有公认的答案。建议的答案对我已经尝试过的事情提出了建议(带有适当标志的 httpcfg 工具)。

最佳答案

根据 http://support.microsoft.com/kb/895971/en-us HttpWebRequest.ClientCertificates.Add已经执行验证,因此证书在客户端验证失败并且永远不会发送。

以上链接包含放宽验证的代码...切勿在生产中使用它!!!

关于c# - HttpListenerRequest 未返回客户端证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7153268/

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