3

HttpListener用来实现一个简单的网络服务器。我正在绑定到端口 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.

我错过了什么?

4

1 回答 1

0

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

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

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

于 2014-01-14T08:06:04.420 回答