如何實作傳輸層安全性 1.2

重要

此版本的 Operations Manager 已終止支援。 建議您 升級至 Operations Manager 2022

本文說明如何為 System Center Operations Manager 管理群組啟用傳輸層安全性 (TLS) 通訊協定 1.2 版。

注意

Operations Manager 將使用在操作系統層級設定的通訊協定。 例如,如果在操作系統層級啟用 TLS 1.0、TLS 1.1 和 TLS 1.2,Operations Manager 會依下列喜好設定順序選取三種通訊協定的其中一種:

  1. TLS 1.2 版
  2. TLS 1.1 版
  3. TLS 1.0 版

然後,Schannel SSP 會選取客戶端和伺服器可支援的最慣用驗證通訊協定。

執行下列步驟來啟用 TLS 通訊協定 1.2 版:

注意

Operations Manager 2016 UR9 和更新版本支援 Microsoft OLE DB Driver 18 for SQL Server (建議) 。

  1. 在所有管理伺服器和 Web 控制台伺服器上安裝 SQL Server 2012 Native Client 11.0Microsoft OLE DB Driver 18 for SQL Server
  2. 在所有管理伺服器、閘道伺服器、Web 主控台伺服器和裝載 Operations Manager 資料庫和報表伺服器角色的 SQL Server 上,安裝 .NET Framework 4.6
  3. 安裝支援 TLS 1.2 的必要 SQL Server 更新
  4. 在所有管理伺服器上安裝 ODBC 11.0ODBC 13.0
  5. 針對 System Center 2016 - Operations Manager,安裝更新彙總套件 4 或更新版本。
  6. 將 Windows 設定為只使用 TLS 1.2。
  7. 將 Operations Manager 設定為只使用 TLS 1.2。
  1. 在所有管理伺服器和 Web 控制台伺服器上安裝 Microsoft OLE DB Driver 18.2 到 18.6.7 版或更新版本。
  2. 在所有管理伺服器、閘道伺服器、Web 主控台伺服器和裝載 Operations Manager 資料庫和報表伺服器角色的 SQL Server 上,安裝 .NET Framework 4.6
  3. 安裝支援 TLS 1.2 的必要 SQL Server 更新
  4. 在所有管理伺服器上安裝 ODBC 驅動程式 17.3 版至 17.10.5 版或更新版本。
  5. 將 Windows 設定為只使用 TLS 1.2。
  6. 將 Operations Manager 設定為只使用 TLS 1.2。

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 通訊協定的使用。

  1. 使用具有本機系統管理認證的帳戶登入伺服器。

  2. 選取並按住 [開始],在 [執行] 文本框中輸入 regedit,然後選取 [確定],以啟動登錄 編輯器。

  3. 找出下列登錄子機碼: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols

  4. Protocols 下建立 SSL 2.0SSL 3.0TLS 1.0TLS 1.1TLS 1.2 的子機碼。

  5. 在您稍早建立的每個通訊協定版本子機碼下,建立 ClientServer 子機碼。 例如,TLS 1.0 的子機碼會是 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\ClientHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server

  6. 若要停用每個通訊協定,請在 ServerClient 下建立下列 DWORD 值:

    • 已開啟 [值 = 0]
    • DisabledByDefault [Value = 1]
  7. 若要啟用 TLS 1.2 通訊協定,請在 和 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server底下HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client建立下列 DWORD 值:

    • Enabled [Value = 1]
    • DisabledByDefault [Value = 0]
  8. 關閉 [登錄編輯程式]。

方法 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 " "
	}
}

將 Opeations Manager 設定為只使用 TLS 1.2

完成 Operations Manager 所有先決條件的設定之後,請在所有管理伺服器、裝載 Web 主控台角色的伺服器,以及任何安裝代理程式的 Windows 電腦上,執行下列步驟。

重要

請仔細依循本節中的步驟。 如果您未正確修改登錄,可能會發生嚴重問題。 進行任何修改之前,請先備份登錄,以便發生問題時還原之用。

注意

在 Windows OS 2012 中執行的 SCOM 2012 R2 需要額外的變更,才能透過 HTTP 對 UNIX/LINUX 監視使用 TLS 1.2。 若要在 Windows 的 WinHTTP 中啟用 TLS 1.2 做為預設安全性通訊協定,必須根據更新進行下列變更 ,才能在 Windows 的 WinHTTP 中啟用 TLS 1.1 和 TLS 1.2 做為預設安全通訊協定

  1. 在 UNIX/LINUX 資源集區的管理伺服器/閘道伺服器上安裝 KB3140245
  2. 備份已修改的登錄,如知識庫文章中所述。
  3. 下載並執行 UNIX/LINUX 資源集區中管理伺服器/閘道上的 簡易修正 工具。
  4. 重新啟動伺服器。

手動修改登錄

  1. 使用具有本機系統管理認證的帳戶登入伺服器。
  2. 選取並按住 [開始],在 [執行] 文本框中輸入 regedit,然後選取 [確定],以啟動登錄 編輯器。
  3. 找出下列登錄子機碼: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319
  4. 在此子機碼底下建立 DWORD 值 SchUseStrongCrypto,並使其值為 1
  5. 找出下列登錄子機碼: HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319
  6. 在此子機碼底下建立 DWORD 值 SchUseStrongCrypto,並使其值為 1
  7. 重新啟動系統來使設定生效。

自動修改登錄

以系統管理員模式執行下列 Windows PowerShell 腳本,以自動設定 Operations Manager 僅使用 TLS 1.2 通訊協定:

# Tighten up the .NET Framework
$NetRegistryPath = "HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319"
New-ItemProperty -Path $NetRegistryPath -Name "SchUseStrongCrypto" -Value "1" -PropertyType DWORD -Force | Out-Null

$NetRegistryPath = "HKLM:\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319"
New-ItemProperty -Path $NetRegistryPath -Name "SchUseStrongCrypto" -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 運作。

  1. 使用具有本機系統管理認證的帳戶登入伺服器。

  2. 選取並按住 [開始],在 [執行] 文本框中輸入 regedit,然後選取 [確定],以啟動登錄 編輯器。

  3. 找出 OpsMgrAC 的下列 ODBC 子機碼: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\OpsMgrAC

    注意

    DSN 的預設名稱是 OpsMgrAC。

  4. ODBC Data Sources 子機碼下,選取 DSN 名稱 OpsMgrAC。 這包含要用於資料庫連接之 ODBC 驅動程式的名稱。 如果您已安裝 ODBC 11.0 時,請將此名稱變更為 ODBC Driver 11 for SQL Server,或是如果您已安裝 ODBC 13.0,則將此名稱變更為 ODBC Driver 13 for SQL Server

  5. OpsMgrAC 子機碼下,更新已安裝之 ODBC 版本的 驅動程式

    • 如果已安裝 ODBC 11.0,請將驅動程式項目變更為 %WINDIR%\system32\msodbcsql11.dll
    • 如果已安裝 ODBC 13.0,請將驅動程式項目變更為 %WINDIR%\system32\msodbcsql13.dll

    登錄檔案

    或者,在 [記事本] 或其他文本編輯器中建立並儲存下列 .reg 檔案。 若要執行儲存 的.reg 檔案,請按兩下檔案。

    • 針對 ODBC 11.0,建立下列 ODBC 11.reg檔案:

      Windows Registry Editor Version 5.00
      
      [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources]
      "OpsMgrAC"="ODBC Driver 11 for SQL Server"
      
      [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\OpsMgrAC]
      "Driver"="%WINDIR%\system32\msodbcsql11.dll"
      
    • 針對 ODBC 13.0,建立下列 ODBC 13.reg檔案:

      Windows Registry Editor Version 5.00
      
      [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources]
      "OpsMgrAC"="ODBC Driver 13 for SQL Server"
      
      [HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\OpsMgrAC]
      "Driver"="%WINDIR%\system32\msodbcsql13.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 運作。

  1. 使用具有本機系統管理認證的帳戶登入伺服器。

  2. 選取並按住 [開始] 以啟動登錄 編輯器,在 [執行] 文本框中輸入 regedit,然後選取 [確定]。

  3. 找出 OpsMgrAC 的下列 ODBC 子機碼: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\OpsMgrAC

    注意

    DSN 的預設名稱是 OpsMgrAC。

  4. ODBC Data Sources 子機碼下,選取 DSN 名稱 OpsMgrAC。 這包含要用於資料庫連接之 ODBC 驅動程式的名稱。 如果您已安裝 ODBC 17,請將此名稱變更為 ODBC Driver 17 for SQL Server

  5. OpsMgrAC 子機碼下,更新已安裝之 ODBC 版本的 驅動程式

    • 如果已安裝 ODBC 17,請將驅動程式項目變更為 %WINDIR%\system32\msodbcsql17.dll

    登錄檔案

    或者,在 [記事本] 或其他文本編輯器中建立並儲存下列 .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 命令,將變更自動化。

    • 針對 ODBC 17,執行下列 PowerShell 命令:

      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
      

後續步驟