ASP.NET,HttpWebRequest和"无法创建SSL / TLS安全通道"

时间:2014-10-23 09:25:29

标签: c# asp.net ssl ssl-certificate system.net.httpwebrequest

是的,我知道在SO和谷歌上有十几个类似的问题。是的,我已经阅读了所有内容,并尝试了那里所说的一切。是的,任何解决方案都没有帮助我。

我有类库,它在ASP.NET应用程序的上下文中使用。我的类库从第三方HTTPS网站下载数据。该网站需要客户证书。我已将证书添加到LOCAL_MACHINE\MY并授予winhttpcertcfg中的访问权限。

我的LogIn方法在商店中找到该证书。正如我在调试输出中看到的那样 - 在这个阶段一切都很好。但是后来,当我尝试加载页面时,我得到The request was aborted: Could not create SSL/TLS secure channel.例外。

我的代码:

client = new XHttpClient();
X509Store store;
X509CertificateCollection certificates;
store = new X509Store(StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadOnly);
certificates = store.Certificates.Find(
    X509FindType.FindByIssuerName,
    "Xxxxxxxx Root CA", true);
// everything is fine here, certificates[0] is my certificate
client.ClientCertificates.AddRange(certificates);
store.Close();

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

好的,伙计们。我自己找到了原因。感谢这个post,我发现IIS 7.5在IIS_IUSRS用户下运行,而不是我认为的NetworkService。一旦我使用winhttpcertcfg授予了对证书的访问权限,它就开始工作了。