我正在尝试将Http Handler中的X509Certificate发送到Web服务,该服务将接收并读取证书以对用户进行身份验证。我知道证书送的很好;我有一个测试人员让我在发送前查看HttpWebRequest
,ClientCertificates
属性显示它附有证书。 (例如request.ClientCertificates.Count = 1
)。
但是,在网络服务的另一面,HttpRequest.ClientCertificate
始终显示NULL
。我查看了许多Microsoft KB示例,并且所有这些示例都使用相同的技术来插入证书。其他不相关的文章表明,HttpRequest.ClientCertificate
是阅读它的首选方式。
那么我做错了什么,如何在服务器上确定是否发送了客户端证书?
答案 0 :(得分:1)
使用HttpListener
和netsh
配置clientcertnegotiation=enable
可能会有所帮助(这会使服务器在初始握手期间协商客户端证书,而不是使用重新协商)。< / p>
这可能还取决于您是否使用私钥在客户端初始化证书,请参阅Can't connect to HTTPS using X509 client certificate