是的,我知道在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();
有什么想法吗?
答案 0 :(得分:0)
好的,伙计们。我自己找到了原因。感谢这个post,我发现IIS 7.5在IIS_IUSRS用户下运行,而不是我认为的NetworkService。一旦我使用winhttpcertcfg
授予了对证书的访问权限,它就开始工作了。