c# - 在 Web 请求中接收 X509 客户端证书

标签 c# httpwebrequest httprequest x509certificate

我正在尝试将 X509Certificate 从 Http 处理程序发送到将接收和读取证书以验证用户身份的 Web 服务。我知道证书发送正常;我有一个测试器,可以让我在发送之前查看 HttpWebRequestClientCertificates 属性显示它附有证书。 (例如 request.ClientCertificates.Count = 1)。

但是,在 Web 服务的另一端,HttpRequest.ClientCertificate 始终显示 NULL。我看过许多 Microsoft 知识库示例,它们都使用相同的技术来插入证书。其他不相关的文章表明,HttpRequest.ClientCertificate 是读取它的首选方式。

那么我做错了什么,我怎样才能在服务器上确定客户端证书已发送?

最佳答案

也许用 clientcertnegotiation=enablenetsh 配置你的 HttpListener会有所帮助(这使得服务器在初始握手期间协商客户端证书,而不是使用重新协商)。

它还可能取决于您是否已使用私钥在客户端初始化证书,请参阅 Can't connect to HTTPS using X509 client certificate

关于c# - 在 Web 请求中接收 X509 客户端证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3450911/

相关文章:

c# - MongoDb C#驱动程序检索增量更新的值

C# - httpWebRequest 流的大小是否有限制?

web-services - 我应该通过 HTTP RESTify 我的 RPC 调用吗?

.net - 通过 App.config 为 System.Net.HttpWebRequest 指定 SSL/TLS

python-3.x - Python - 请求模块 - 检索网页时出现 HTTP 500 错误

c# - 当存在 IntegrationEvents 时,Pub/Sub 模式如何解耦微服务

c# - Code first DbMigrator 在从不同机器构建时导致错误

c# - 文件不是项目的一部分或生成操作未设置为 "Resource"

python - 错误 : HTTPS site requires a 'Referer header' to be sent by your Web browser, 但未发送

android - 是否可以在队列中执行多个 http 请求?