[.NET]與伺服器的連接 已成功建立,但在登入前的信號交換時發生錯誤。(Provider: SSL 提供者, error: 0-用戶端與伺服器 無法溝通,因為他們沒有公用的演算法)

環境

AP: Windows 2008 R2 SP1 64位元

DB: Windows 2008 R2 SP1 64位元、SQL Server 2008 SP2

最近客戶環境上了以下的更新後,

AP KB3168965 KB3163245 KB3170106 KB3170455 IE11安全性更新(KB890830)
DB KB3168965 KB3163245 KB3170106 KB3170455

AP就發生了以下的錯誤,

與伺服器的連接 已成功建立,但在登入前的信號交換時發生錯誤。(Provider: SSL 提供者, error: 0-用戶端與伺服器 無法溝通,因為他們沒有公用的演算法)

 

Connection handshake failed. An OS call failed: (80090331) 0x80090331(The client and server cannot communicate, because they do not possess a common algorithm.)

似乎跟「修正︰ 與 TLS 1.2 加密的端點通訊失敗,當您使用 SQL Server 時」這篇KB一樣。

所以客戶就依「Microsoft SQL Server 的 TLS 1.2 支援」這篇來更新,系統就活過來了。

非常感謝客戶同時分享給我們他們的做法,如下,

經查詢相關關鍵字及停用TLS 1.0問題都指向此篇更新: Microsoft SQL Server 的 TLS 1.2 支援( https://support.microsoft.com/en-us/kb/3163245)

更新步驟如如下,

於DB安裝:

(1) 將SQL Server 2008 SP2 更新成 SP4 => 安裝SQL Server 2008 SP4 - SQLServer2008SP4-KB2979596-x64-CHT.exe

(2) 安裝SQL Server 2008 SP4 TLS 1.2更新 => SQLServer2008-KB3144113-x64.exe

(3) SQL Server 原生用戶端(適用於 SQL Server 2008) => Windows6.1-KB3080079-x64.msu 

 

於AP安裝:

(1) ADO.NET-SqlClient (.NET Framework 4.0) => NDP40-KB3106994-x64.exe 

(2) SQL Server 原生用戶端(適用於 SQL Server 2008) => Windows6.1-KB3080079-x64.msu

 

參考資料

修正︰ 與 TLS 1.2 加密的端點通訊失敗,當您使用 SQL Server 時

Microsoft SQL Server 的 TLS 1.2 支援

MS16-091:說明適用於 Windows 7 Service Pack 1 和 Windows Server 2008 R2 Service Pack 1 中 .NET Framework 3.5.1 的安全性更新:2016 年 7 月 12 日

Hi, 

亂馬客Blog已移到了 「亂馬客​ : Re:從零開始的軟體開發生活

請大家繼續支持 ^_^