ASP.NET、HttpWebRequest和“;无法创建SSL/TLS安全通道”;
本文关键字:SSL TLS 安全 通道 创建 NET HttpWebRequest ASP | 更新日期: 2023-09-27 18:27:37
是的,我知道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();
有什么想法吗?
好的,伙计们。我自己找到了原因。多亏了这篇文章,我发现IIS 7.5运行在IIS_IUSRS用户下,而不是我认为的NetworkService。一旦我使用winhttpcertcfg
授予证书访问权限,它就开始工作了。