0

我在 C#.NET 中设置 X509 证书方案时遇到了很多麻烦。服务器上启用了 SSL,并且正在通过 SSL 建立连接。正在通过 将证书添加到请求的存储中request.ClientCertificates.Add()。但是,没有客户端证书附加到握手请求(我通过检查服务器代码HttpRequest.ClientCertificate和分析 Fiddler 中的握手来确认)。

据我所知,这里的问题是服务器没有请求客户端证书。证书肯定在传出请求中,但我在握手时没有看到,在服务器端也没有 - 它们只是消失在以太中。我知道选择证书背后的语义(感谢这个页面),但它并没有解决我的问题。CA 应该相同;我在测试的每一端都使用相同的自签名私钥安全证书。

显然,我可以使用 certutil.exe 来检查与给定服务器证书一起使用时将选择哪些证书。如果我能弄清楚如何像这样使用它,这将是一个巨大的帮助。Certutil 是一个文档很差的大程序。任何帮助,将不胜感激。

4

1 回答 1

0

如果您使用的是 IIS 服务器端,则必须提供服务器信任的证书。因此,您必须将客户端证书的 CA 证书添加到服务器计算机的“根证书颁发机构”存储中。IIS 不适用于自签名证书。它请求客户端证书提供它信任的 CA 列表。

于 2010-11-12T22:05:59.683 回答