2

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

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

那么我做错了什么,如何在服务器上确定发送了客户端证书?

4

1 回答 1

1

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

它还可能取决于您是否已使用其私钥在客户端初始化证书,请参阅无法使用 X509 客户端证书连接到 HTTPS

于 2010-08-10T17:08:32.293 回答