无法从 Web 服务器访问 https Web 服务 - Schannel 致命警报:40

无法从 Web 服务器访问 https Web 服务 - Schannel 致命警报:40

大约一个月前,我们访问 Web 服务的代码开始失败,并出现与 SSL 连接相关的错误:

System.Net.WebException: The request was aborted: Could not create SSL/TLS secure channel. at System.Net.HttpWebRequest.GetRequestStream(TransportContext& context) at System.Net.HttpWebRequest.GetRequestStream() at 

事件查看器中记录了以下错误。

事件 ID:36887 - “收到以下致命警报:40。”

它是 Windows Server 2008 64 位。它是为符合 PCI 要求而设置的,因此在设置服务器以使其符合要求时,对 SSL 进行了更改,但在停止工作之前没有进行任何更改。

在服务器上,如果我尝试使用 Internet Explorer 访问 Web 服务的 HTTPS URL,它会提示无法显示页面,并记录相同的事件。我尝试过的其他一些 HTTPS 网站上也发生了这种情况。

如果我在同一台服务器上使用 Google Chrome 访问,它可以正常工作。

在我的 C# ASP.NET 代码中,我尝试忽略 SSL 错误,但这没有帮助:

System.Net.ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };

我还读到过有关可能导致该问题的 2014 年 11 月更新,但修复该问题的后续更新似乎已经安装。

还有什么想法我还可以尝试吗?

答案1

我找到了一个解决方案......我使用了一个名为的应用程序IIS 加密,它会更改 SSL 协议、密码、哈希、密钥交换器和 SSL 密码顺序的注册表设置,以将它们全部设置为符合 PCI 合规性的最佳配置。服务器重启后,Internet Explorer 不仅可以访问 HTTPS 页面,而且访问 Web 服务的代码也可以再次开始工作。

相关内容