我在 C#.NET 中设置 X509 证书方案时遇到了很多麻烦。服务器上启用了 SSL,并且正在通过 SSL 建立连接。正在通过 将证书添加到请求的存储中request.ClientCertificates.Add()
。但是,没有客户端证书附加到握手请求(我通过检查服务器代码HttpRequest.ClientCertificate
和分析 Fiddler 中的握手来确认)。
据我所知,这里的问题是服务器没有请求客户端证书。证书肯定在传出请求中,但我在握手时没有看到,在服务器端也没有 - 它们只是消失在以太中。我知道选择证书背后的语义(感谢这个页面),但它并没有解决我的问题。CA 应该相同;我在测试的每一端都使用相同的自签名私钥安全证书。
显然,我可以使用 certutil.exe 来检查与给定服务器证书一起使用时将选择哪些证书。如果我能弄清楚如何像这样使用它,这将是一个巨大的帮助。Certutil 是一个文档很差的大程序。任何帮助,将不胜感激。