實作傳輸層安全性 1.2
本文說明如何允許 System Center Operations Manager 利用傳輸層安全性 (TLS) 1.2。
注意
Operations Manager 將使用在操作系統層級設定的通訊協定。 例如,如果在操作系統層級啟用 TLS 1.0、TLS 1.1 和 TLS 1.2,Operations Manager 會依下列喜好設定順序選取三種通訊協定之一:
- TLS 1.2 版
- TLS 1.1 版
- TLS 1.0 版
接著 ,Schannel SSP 會選取用戶端和伺服器可支援的最慣用驗證通訊協定。
執行下列步驟,在 Operations Manager 中實作 TLS 通訊協定 1.2 版:
注意
Operations Manager 2016 UR9 和更新版本支援 Microsoft OLE DB Driver 18 for SQL Server(建議使用)。
- 在所有管理伺服器和 Web 控制台伺服器上安裝 SQL Server 2012 Native Client 11.0 或 Microsoft OLE DB Driver (x64)。
- 在所有管理伺服器和 Web 控制台伺服器上安裝 Microsoft ODBC Driver (x64)。
- 安裝支援 TLS 1.2 的必要 SQL Server 更新。
- 在所有元件上安裝至少適用於 SCOM 2016 的更新匯總 4。
- 請確定您的伺服器至少已安裝與操作系統相容的 .NET 4.6: .NET Framework 版本和相依性
- 請勿安裝 .NET 4.8,因為 SCOM 2016 不相容有已知問題。
- 將 Windows 設定為只使用 TLS 1.2。
- 將 .NET 設定為預設使用 TLS 1.2。
- 如果已安裝,請設定 Audit Collection Services。
- 在所有管理伺服器和 Web 控制台伺服器上安裝 Microsoft OLE DB Driver for SQL 18.7.4 版。
- 在所有管理伺服器和 Web 控制台伺服器上安裝 Microsoft ODBC Driver for SQL 17.10.6 版。
- 將 Windows 設定為只使用 TLS 1.2。
- 將 .NET 設定為預設使用 TLS 1.2。
- 如果已安裝,請設定 Audit Collection Services。
注意
如果使用 SQL Server 連線加密,您必須改為安裝這些驅動程式版本:
- Microsoft OLE DB Driver 19: https://aka.ms/downloadmsoledbsql
- Microsoft ODBC Driver 18: https://aka.ms/downloadmsodbcsql
如需設定 SQL 連線加密的詳細資訊,請參閱這裡:設定 SQL Server 資料庫引擎 來加密連線
Operations Manager 會產生 SHA1 和 SHA2 自我簽署憑證。 這是啟用 TLS 1.2 的必要專案。 如果使用 CA 簽署的憑證,請確定憑證為 SHA1 或 SHA2。
注意
如果您的安全策略限制 TLS 1.0 和 1.1,安裝新的 Operations Manager 2016 管理伺服器、網關伺服器、Web 控制台和 Reporting Services 角色將會失敗,因為安裝媒體不包含支援 TLS 1.2 的更新。 安裝這些角色的唯一方式是在系統上啟用 TLS 1.0、套用更新匯總 4,然後在系統上啟用 TLS 1.2。 這項限制不適用於 Operations Manager 1801 版。
將 Windows 作業系統設定為只使用 TLS 1.2 通訊協定
使用下列其中一種方法來設定 Windows,只使用 TLS 1.2 通訊協定。
方法 1:手動修改登錄
重要
請仔細依照本節中的步驟執行。 如果您未正確修改登錄,可能會發生嚴重問題。 在修改之前,備份登錄以供還原,以免發生問題。
使用下列步驟來啟用/停用所有全 SCHANNEL 通訊協定。 建議您為所有傳入通訊和傳出通訊啟用 TLS 1.2 通訊協定。
注意
進行這些登錄變更不會影響 Kerberos 或 NTLM 通訊協定的使用。
使用具有本機系統管理認證的帳戶登入伺服器。
選取並按住 [開始],在 [執行] 文本框中輸入 regedit,然後選取 [確定]。
找出下列登錄子機碼:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols
在 [通訊協定] 底下建立子機碼:
- SSL 2.0
- SSL 3.0
- TLS 1.0
- TLS 1.1
- TLS 1.2。
在您稍早建立的每個通訊協定版本子機碼下,建立 用戶端 和 伺服器 子機碼。 例如,TLS 1.0 的子機碼會是
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server
若要停用每個通訊協定,請在 [伺服器] 和 [用戶端] 底下建立下列 DWORD 值:
- Enabled [Value = 0]
- DisabledByDefault [Value = 1]
若要啟用 TLS 1.2 通訊協定,請建立下列登錄機碼:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server
:
然後在 [伺服器] 和 [用戶端] 底下建立下列 DWORD 值:
- Enabled [Value = 1]
- DisabledByDefault [Value = 0]
關閉 [登錄編輯程式]。
方法 2:自動修改登錄
以系統管理員身分執行下列 Windows PowerShell 腳本,以自動將 Windows 操作系統設定為僅使用 TLS 1.2 通訊協定:
$ProtocolList = @("SSL 2.0", "SSL 3.0", "TLS 1.0", "TLS 1.1", "TLS 1.2")
$ProtocolSubKeyList = @("Client", "Server")
$DisabledByDefault = "DisabledByDefault"
$registryPath = "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\"
foreach ($Protocol in $ProtocolList)
{
foreach ($key in $ProtocolSubKeyList)
{
$currentRegPath = $registryPath + $Protocol + "\" + $key
Write-Output "Current Registry Path: `"$currentRegPath`""
if (!(Test-Path $currentRegPath))
{
Write-Output " `'$key`' not found: Creating new Registry Key"
New-Item -Path $currentRegPath -Force | out-Null
}
if ($Protocol -eq "TLS 1.2")
{
Write-Output " Enabling - TLS 1.2"
New-ItemProperty -Path $currentRegPath -Name $DisabledByDefault -Value "0" -PropertyType DWORD -Force | Out-Null
New-ItemProperty -Path $currentRegPath -Name 'Enabled' -Value "1" -PropertyType DWORD -Force | Out-Null
}
else
{
Write-Output " Disabling - $Protocol"
New-ItemProperty -Path $currentRegPath -Name $DisabledByDefault -Value "1" -PropertyType DWORD -Force | Out-Null
New-ItemProperty -Path $currentRegPath -Name 'Enabled' -Value "0" -PropertyType DWORD -Force | Out-Null
}
Write-Output " "
}
將 .NET Framework 設定為只使用 TLS 1.2
.NET 通常需要應用程式定義要用於通訊的 TLS 通訊協定,但在 SCOM 實例中,我們必須告訴全系統要使用的通訊協定。
完成 Operations Manager 所有必要條件的設定之後,請在所有管理伺服器上、裝載 Web 控制台角色的伺服器,以及安裝代理程式的任何 Windows 計算機上執行下列步驟。
重要
請仔細依照本節中的步驟執行。 如果您未正確修改登錄,可能會發生嚴重問題。 進行任何修改之前,請備份登錄以進行還原,以防發生問題。
注意
在 Windows OS 2012 上執行的 SCOM 需要額外的變更,才能透過 HTTP 對 UNIX/LINUX 監視使用 TLS 1.2。 若要在 Windows 的 WinHTTP 中啟用 TLS 1.2 做為預設安全性通訊協議,必須根據 更新進行下列變更,才能在 Windows 的 WinHTTP 中啟用 TLS 1.1 和 TLS 1.2 作為預設安全通訊協定。
手動修改登錄
- 開啟註冊表 編輯器
- 找出下列登入子機碼:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727
- 建立下列 DWORD 值組:
- SchUseStrongCrypto [Value = 1]
- SystemDefaultTlsVersions [Value = 1]
- 建立下列 DWORD 值組:
- 找出下列登入子機碼:
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v2.0.50727
- 建立下列 DWORD 值組:
- SchUseStrongCrypto [Value = 1]
- SystemDefaultTlsVersions [Value = 1]
- 建立下列 DWORD 值組:
- 找出下列登入子機碼:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319
- 建立下列 DWORD 值組:
- SchUseStrongCrypto [Value = 1]
- SystemDefaultTlsVersions [Value = 1]
- 建立下列 DWORD 值組:
- 找出下列登入子機碼:
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319
- 建立下列 DWORD 值組:
- SchUseStrongCrypto [Value = 1]
- SystemDefaultTlsVersions [Value = 1]
- 建立下列 DWORD 值組:
- 重新啟動系統來使設定生效。
自動修改登錄
在系統管理員模式中執行下列 Windows PowerShell 腳本,以自動設定 .NET Framework 以防止架構繼承的 TLS 1.0 相依性:
# Tighten up the .NET Framework
$NetRegistryPath1 = "HKLM:\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v2.0.50727"
New-ItemProperty -Path $NetRegistryPath1 -Name "SchUseStrongCrypto" -Value "1" -PropertyType DWORD -Force | Out-Null
New-ItemProperty -Path $NetRegistryPath1 -Name "SystemDefaultTlsVersions" -Value "1" -PropertyType DWORD -Force | Out-Null
$NetRegistryPath2 = "HKLM:\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319"
New-ItemProperty -Path $NetRegistryPath2 -Name "SchUseStrongCrypto" -Value "1" -PropertyType DWORD -Force | Out-Null
New-ItemProperty -Path $NetRegistryPath2 -Name "SystemDefaultTlsVersions" -Value "1" -PropertyType DWORD -Force | Out-Null
$NetRegistryPath3 = "HKLM:\SOFTWARE\Microsoft\.NETFramework\v2.0.50727"
New-ItemProperty -Path $NetRegistryPath3 -Name "SchUseStrongCrypto" -Value "1" -PropertyType DWORD -Force | Out-Null
New-ItemProperty -Path $NetRegistryPath3 -Name "SystemDefaultTlsVersions" -Value "1" -PropertyType DWORD -Force | Out-Null
$NetRegistryPath4 = "HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319"
New-ItemProperty -Path $NetRegistryPath4 -Name "SchUseStrongCrypto" -Value "1" -PropertyType DWORD -Force | Out-Null
New-ItemProperty -Path $NetRegistryPath4 -Name "SystemDefaultTlsVersions" -Value "1" -PropertyType DWORD -Force | Out-Null
其他設定
如果這是針對 System Center 2016 - Operations Manager 實作,在套用更新匯總 4 之後,請確定匯入此匯總中包含的管理元件位於下列目錄中: \Program Files\Microsoft System Center 2016\Operations Manager\Server\Management Packs for Update Rollups。
如果您要使用 Operations Manager 監視支援的 Linux 伺服器版本,請遵循發行版適當網站上的指示來設定 TLS 1.2。
稽核收集服務
針對稽核收集服務 (ACS),您必須在 ACS 收集器伺服器上的登錄中進行其他變更。 ACS 會使用 DSN 來建立資料庫的連線。 您必須更新 DSN 設定,使其適用於 TLS 1.2。
使用具有本機系統管理認證的帳戶登入伺服器。
選取並按住 [開始],在 [執行] 文本框中輸入 regedit,然後選取 [確定]。
找出 OpsMgrAC 的下列 ODBC 子機碼:
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\OpsMgrAC
。注意
DSN 的預設名稱是 OpsMgrAC。
在 [ODBC 數據源] 子機碼下,選取 DSN 名稱 OpsMgrAC。 這包括要用於資料庫連接之 ODBC 驅動程式的名稱。 如果您已安裝 ODBC 11.0,請將此名稱變更為 ODBC Driver 11 for SQL Server,或如果您已安裝 ODBC 13.0,請將此名稱變更為 ODBC Driver 13 for SQL Server。
在 OpsMgrAC 子機碼下,更新 已安裝之 ODBC 版本的驅動程式 。
- 如果已安裝 ODBC 11.0,請將 Driver 項目變更為
%WINDIR%\system32\msodbcsql11.dll
。 - 如果已安裝 ODBC 13.0,請將 Driver 項目變更為
%WINDIR%\system32\msodbcsql13.dll
。 - 如果已安裝 ODBC 17.0,請將 Driver 項目變更為
%WINDIR%\system32\msodbcsql17.dll
。 - 如果已安裝 ODBC 18.0,請將 Driver 項目變更為
%WINDIR%\system32\msodbcsql18.dll
。
- 如果已安裝 ODBC 11.0,請將 Driver 項目變更為
登錄檔
或者,在 [記事本] 或其他文本編輯器中建立並儲存下列 .reg 檔案。 若要執行儲存 .reg 檔案,請按兩下檔案。
針對 ODBC 11.0、13.0、17.x 或 18.x。 建立下列檔案ODBC.reg 和 (以所使用的 ODBC 版本取代) :
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources] "OpsMgrAC"="ODBC Driver 18 for SQL Server" [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\OpsMgrAC] "Driver"="%WINDIR%\system32\msodbcsql18.dll"
PowerShell
或者,您可以執行下列 PowerShell 命令,將變更自動化。
若為 ODBC 11.0,請執行下列 PowerShell 命令:
New-ItemProperty -Path "HKLM:\SOFTWARE\ODBC\ODBC.INI\OpsMgrAC" -Name "Driver" -Value "%WINDIR%\system32\msodbcsql11.dll" -PropertyType STRING -Force | Out-Null New-ItemProperty -Path "HKLM:\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources" -Name "OpsMgrAC" -Value "ODBC Driver 11 for SQL Server" -PropertyType STRING -Force | Out-Null
若為 ODBC 13.0,請執行下列 PowerShell 命令:
New-ItemProperty -Path "HKLM:\SOFTWARE\ODBC\ODBC.INI\OpsMgrAC" -Name "Driver" -Value "%WINDIR%\system32\msodbcsql13.dll" -PropertyType STRING -Force | Out-Null New-ItemProperty -Path "HKLM:\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources" -Name "OpsMgrAC" -Value "ODBC Driver 13 for SQL Server" -PropertyType STRING -Force | Out-Null
稽核收集服務
針對稽核收集服務 (ACS),您必須在 ACS 收集器伺服器上的登錄中進行其他變更。 ACS 會使用 DSN 來建立資料庫的連線。 您必須更新 DSN 設定,使其適用於 TLS 1.2。
- 使用具有本機系統管理認證的帳戶登入伺服器。
- 選取並按住 [開始],在 [執行] 文本框中輸入 regedit,然後選取 [確定]。
- 找出 OpsMgrAC 的下列 ODBC 子機碼:
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\OpsMgrAC
。
注意
DSN 的預設名稱是 OpsMgrAC。
- 在 [ODBC 數據源] 子機碼下,選取 DSN 名稱 OpsMgrAC。 這包括要用於資料庫連接之 ODBC 驅動程式的名稱。 如果您已安裝 ODBC 17,請將此名稱變更為 ODBC Driver 17 for SQL Server。
- 在 OpsMgrAC 子機碼下,更新 已安裝之 ODBC 版本的驅動程式 。
- 例如,如果已安裝 ODBC 17,請將 Driver 專案變更為
%WINDIR%\system32\msodbcsql17.dll
。 - 如果不同,請檢查目前安裝的 ODBC 驅動程式版本 DLL 名稱。
- 例如,如果已安裝 ODBC 17,請將 Driver 專案變更為
登錄檔
或者,在 [記事本] 或其他文本編輯器中建立並儲存下列 .reg 檔案。 若要執行儲存 .reg 檔案,請按兩下檔案。
針對 ODBC 17,建立下列 ODBC 17.reg 檔案:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources] "OpsMgrAC"="ODBC Driver 17 for SQL Server" [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\OpsMgrAC] "Driver"="%WINDIR%\system32\msodbcsql17.dll"
PowerShell
或者,您可以執行下列 PowerShell 命令,將變更自動化。
如果使用 17 以外的 ODBC 驅動程式版本,請務必將 dll 檔案路徑取代為適當的版本。
New-ItemProperty -Path "HKLM:\SOFTWARE\ODBC\ODBC.INI\OpsMgrAC" -Name "Driver" -Value "%WINDIR%\system32\msodbcsql7.dll" -PropertyType STRING -Force | Out-Null New-ItemProperty -Path "HKLM:\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources" -Name "OpsMgrAC" -Value "ODBC Driver 17 for SQL Server" -PropertyType STRING -Force | Out-Null
下一步
如需已使用之埠的完整清單、通訊方向,以及是否可以設定埠,請參閱 設定 Operations Manager 的防火牆。
如需管理群組中元件之間數據如何受到保護的整體檢閱,請參閱 Operations Manager 中的驗證和數據加密。