Windows-Server-2008

無法從 Web 伺服器訪問 https Web 服務 - Schannel 致命警報:40

  • February 12, 2015

大約一個月前,我們訪問 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瀏覽器訪問,它工作正常。

在我的 C# ASP.NET 程式碼中,我嘗試忽略 SSL 錯誤,但這沒有幫助:

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

我還閱讀了可能導致該問題的 2014 年 11 月更新,但後來修復它的更新似乎已經安裝。

關於我還能嘗試什麼的任何想法?

我找到了一個解決方案……我使用了一個名為IIS Crypto的應用程序,它更改了 SSL 協議、密碼、雜湊、密鑰交換器和 SSL 密碼順序的系統資料庫設置,以將這些設置為 PCI 合規性的最佳配置。伺服器重新啟動後,Internet Explorer 不僅可以訪問 HTTPS 頁面,而且訪問 Web 服務的程式碼又開始工作了。

引用自:https://serverfault.com/questions/667070