我正在使用HttpListener
来实现一个简单的Web服务器。我绑定到端口44430 - 我不是与IIS共享端口。我使用netsh
:
netsh http add sslcert ipport=0.0.0.0:44430 ^
certhash=a614ebdfd07968dedd3afdb1cb8c696988dd7734 ^
appid="{00112233-4455-6677-8899-AABBCCDDEEFF}"
现在,我想要客户端证书。我将clientcertnegotiation=enable
添加到上面的命令中,然后在netsh http show sslcert
中显示为已启用。
我在服务器中使用以下代码:
var context = listener.GetContext();
var clientCertificate = context.Request.GetClientCertificate();
...但是当我使用Internet Explorer浏览网站时,clientCertificate
为null
。
我错过了什么?
答案 0 :(得分:0)
您必须在Windows证书存储区中拥有客户端证书。
证书需要由CA(证书颁发机构)签名 在服务器主机上受信任。
然后IE应该能够找到客户端证书并将其传递给 服务器。