使用HttpListener的客户端证书

时间:2013-02-04 16:30:48

标签: .net ssl httplistener

我正在使用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浏览网站时,clientCertificatenull

我错过了什么?

1 个答案:

答案 0 :(得分:0)

您必须在Windows证书存储区中拥有客户端证书。

证书需要由CA(证书颁发机构)签名 在服务器主机上受信任。

然后IE应该能够找到客户端证书并将其传递给 服务器。