2010-08-12 161 views
0

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

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

当然,我可以使用certutil.exe来检查使用给定的服务器证书时将选择哪些证书。如果我能弄清楚如何使用它,这将是一个巨大的帮助。 Certutil是一个很难记录的大计划。任何帮助,将不胜感激。

回答

0

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