啟用TLS1.2作業整理
近期在客戶服務時,要將TLS改為1.2時遇到一些狀況,所以筆記整理一下找到的資料,希望對有需要的朋友有幫助
先來看一下TLS是什麼,根據維基百科上的介紹:
傳輸層安全性協定(英語:Transport Layer Security,縮寫:TLS)及其前身安全通訊協定(英語:Secure Sockets Layer,縮寫:SSL)是一種安全協定,目的是為網際網路通訊提供安全及資料完整性保障 TLS協定採用主從式架構模型,用於在兩個應用程式間透過網路建立起安全的連線,防止在交換資料時受到竊聽及篡改。 |
因為先前的版本有安全性的問題,因此被禁用,而根據維基百科上的各版本的狀態,TLS1.0/1.1也將在2020年被棄用,所以各家IT人員應該已經把設定改為1.2了吧!!!
在改用TLS1.2之前,有參考了一下大家的作法,大致上以升級/更新,整個部份在Microsoft MSDN的有滿詳細的講解,大致上有以下幾個方式:
- 啟用 TLS 1.2 通訊協定作為安全性提供者
- 更新 .NET Framework 以支援 TLS 1.2
- 更新 SQL Server 和用戶端元件
- 更新 Windows 和 Windows 8.0、Windows Server 2012 R2 及更早版本上的 WinHTTP
- 更新 Windows Server Update Services (WSUS)
總結一下,就是設定為以TLS1.2通訊協助為主,該升級的要升級,要更新的記得更新,然後MSDN有特別提醒,要記得「與用戶端一起啟動此程序,特別是舊版的 Windows。 在 Configuration Manager 伺服器上啟用 TLS 1.2 之前,請確定所有的用戶端都支援 TLS 1.2。 否則,用戶端將無法與伺服器通訊,而且可能被孤立」,這部份筆者就遇到了,Server升級後,相關的系統未跟著升級,結果服務就停擺了…,所以要記得。
微軟MSDN上有整理一份表,各位可以根據自己的服務看看需要做那些部份
功能或案例 |
更新工作 |
站台伺服器 (中央、主要或次要) |
- 更新 .NET Framework |
網站資料庫伺服器 |
|
次要站台伺服器 |
更新 SQL Server 與其用戶端元件至相容的 SQL Express 版本 |
網站系統角色 |
- 更新 .NET Framework 並驗證強式加密設定 |
Reporting Services 點 |
在站台伺服器、SQL Reporting Services 伺服器與任何包含主控台的電腦上- 更新 .NET Framework |
軟體更新點 |
|
雲端管理閘道 |
|
Configuration Manager 主控台 |
- 更新 .NET Framework |
具備 HTTPS 站台系統角色的 Configuration Manager 用戶端 |
|
軟體中心 |
- 更新 .NET Framework |
Windows 7 用戶端 |
在任何伺服器元件上啟用 TLS 1.2「之前」,請先更新 Windows 以使用 WinHTTP 支援 TLS 1.2 進行主從式通訊。 如果先在伺服器元件上啟用 TLS 1.2,會造成較早版本的用戶端被孤立。 |
這份表格整理的很詳細,而且怎麼處理也有相關連結。
另外,上面也有列出一些改用TLS1.2後常見的已知問題,對於變更後服務無法正常運作,可以到網站上查看看。
而這次有遇到一個狀況,就是「SQL Server 通訊失敗」,這什麼狀況??
就是在更新後,系統連到SQL Server時無法建立連線,會有SSL Security error的報錯,明明系統的.Net framework也升級了,SQL Server也改為TLS1.2了,怎麼會有這個狀況?
之前看了半天,才發現不是只有我們遇到,特別提出來提醒各位,在黑暗執行序的文章中跟微軟MSDN的已知問題中都有提到。
SQL Server 通訊失敗 如果 SQL Server 通訊失敗並傳回 SslSecurityError 錯誤,請確認下列設定: 更新 .NET Framework,並在每部機器上啟用強式加密 在主機伺服器上更新 SQL Server 在與 SQL 通訊的所有系統上更新 SQL 用戶端元件。 例如,站台伺服器、SMS 提供者和站台角色伺服器。 |
上面是MSDN寫的,看的有點模糊,詳細部份看黑暗執行序的文章會更清楚,基本上就是ODBC的版本跟設定,記得要安裝新版,以及連線字串要用新的寫法,否則就會產生上面提到的錯誤訊息。
還有,因為.Net Framework的關係,有些會建議在程式中指定用TLS1.2的方式建立連線,但在MSDN中則是不這樣建議
建議您:
當應用程式讓 OS 選擇 TLS 版本時:
|
上述已經說的很清楚了,所以要注意一下,但基本上,若Server已經指定只有TLS1.2,系統部份應該也是跟著用,目前筆者維護的系統並未特別指定,只有將Server指定TLS1.2並升級.Net Framework,目前測試皆正常運作。
以上,是TLS1.2設定的相關資料,以及本次進行變更中遇到的狀況/經驗跟大家分享,希望大家在變更時都順利完成。