我正在尝试将 X509Certificate 从 Http 处理程序发送到将接收和读取证书以验证用户身份的 Web 服务。我知道证书发送正常;我有一个测试器,可以让我在发送之前查看 HttpWebRequest
,ClientCertificates
属性显示它附有证书。 (例如 request.ClientCertificates.Count = 1
)。
但是,在 Web 服务的另一端,HttpRequest.ClientCertificate
始终显示 NULL
。我看过许多 Microsoft 知识库示例,它们都使用相同的技术来插入证书。其他不相关的文章表明,HttpRequest.ClientCertificate
是读取它的首选方式。
那么我做错了什么,我怎样才能在服务器上确定客户端证书已发送?
最佳答案
也许用 clientcertnegotiation=enable
和 netsh
配置你的 HttpListener
会有所帮助(这使得服务器在初始握手期间协商客户端证书,而不是使用重新协商)。
它还可能取决于您是否已使用私钥在客户端初始化证书,请参阅 Can't connect to HTTPS using X509 client certificate
关于c# - 在 Web 请求中接收 X509 客户端证书,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3450911/