如何实现传输层安全性 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:

注意

Microsoft OLE DB Driver 18 for SQL Server(推荐)可以与 Operations Manager 2016 UR9 及更高版本配合使用。

  1. 在所有管理服务器和 Web 控制台服务器上安装 SQL Server 2012 Native Client 11.0Microsoft OLE DB Driver 18 for SQL Server
  2. 在承载 Operations Manager 数据库和报表服务器角色的所有管理服务器、网关服务器、Web 控制台服务器和 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 驱动程序 版本 18.2 至 18.6.7 或更高版本。
  2. 在承载 Operations Manager 数据库和报表服务器角色的所有管理服务器、网关服务器、Web 控制台服务器和 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.0”、“SSL 3.0”、“TLS 1.0”、“TLS 1.1”和“TLS 1.2”创建一个子项

  5. 在之前创建的每个协议版本子项下创建“Client”和“Server”子项。 例如,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. 若要禁用每个协议,请在“Server”和“Client”下创建以下 DWORD 值

    • Enabled [Value = 0]
    • DisabledByDefault [Value = 1]
  7. 若要启用 TLS 1.2 协议,请在 和 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\ServerHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client创建以下 DWORD 值:

    • Enabled [值 = 1]
    • DisabledByDefault [值 = 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 " "
	}
}

将 Operations Manager 配置为仅使用 TLS 1.2

完成 Operations Manager 所有先决条件的配置之后,在所有管理服务器、托管 Web 控制台角色的服务器和安装了代理的任何 Windows 计算机上执行以下步骤。

重要

请认真遵循本部分所述的步骤。 如果注册表修改不正确,可能会发生严重问题。 进行任何修改之前,请备份注册表,以便在出现问题时进行恢复。

注意

在 Windows OS 2012 中运行的 SCOM 2012 R2 需要进行其他更改才能使用 TLS 1.2 over HTTP 进行 UNIX/LINUX 监视。 若要在 Windows 版 WinHTTP 中启用 TLS 1.2 作为默认安全协议,需要根据更新以在 Windows 版 WinHTTP 中启用 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. 在此子项下创建值为 1的 DWORD 值 SchUseStrongCrypto
  5. 找到以下注册表子项: HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319
  6. 在此子项下创建值为 1的 DWORD 值 SchUseStrongCrypto
  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\msodbcsql17.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
      

后续步骤