为 Orchestrator 设置 TLS 1.3

本文介绍如何使用 System Center - Orchestrator 设置传输安全层 (TLS) 协议版本 1.3。

开始之前

在为 Orchestrator 设置 TLS 1.3 之前,需要注意以下事项:

  • Orchestrator 应运行版本 2022 或 2025。
  • 编排器上的安全修补程序应该是最新的。
  • System Center 更新应是最新的。
  • 应在 Orchestrator 管理服务器上安装 SQL Server 2012 Native client 11.0 或更高版本。 若要下载并安装 Microsoft SQL Server 2012 Native Client 11.0,请参阅 此Microsoft下载中心网页
  • 业务流程协调程序应运行 .NET 版本 4.6。 按照 以下说明 确定安装了哪个版本的 .NET。
  • 若要使用 TLS 1.3,System Center 组件会生成 SHA1 或 SHA2 自签名证书。 如果使用证书颁发机构(CA)中的 SSL 证书,则应使用 SHA1 或 SHA2。
  • 安装支持 TLS 1.3 的 SQL Server 版本。 SQL Server 2022 或更高版本支持 TLS 1.3。

为 TLS 1.3 支持安装 SQL Server 更新

重要

即使 TLS 1.3 支持 TDS 连接,要启动 SQL Server 附属服务仍需要 TLS 1.2。 不要在计算机上禁用 TLS 1.2。

下载并安装 SQL Server 版本的更新。

注意

  • SQL Server 2019 (15.x) 和早期版本不支持 TLS 1.3。

配置和使用 TLS 1.3

若要配置和使用 TLS 1.3,请执行以下步骤:

  1. 将 Orchestrator 配置为使用 TLS 1.3:

    a。 在 Orchestrator 上启动注册表编辑器。 为此,请右键单击“ 开始”,在“运行”框中输入 regedit ,然后选择“ 确定”。

    b. 找到以下注册表子项:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319

    选项c. 在此密钥下创建 DWORD SchUseStrongCrypto [Value=1]。

    d。 找到以下注册表子项:HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NetFramework\v4.0.30319

    e。 在此密钥下创建 DWORD SchUseStrongCrypto [Value=1]。

    f。 将 System Center 设置为仅使用 TLS 1.3。

    在此步骤中更改注册表之前,请备份注册表,以备日后需要对其进行还原。 然后设置以下注册表项值。

    64 位操作系统的值

    路径 注册表项
    HKEY\_LOCAL\_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727 系统默认TLS版本 (SystemDefaultTlsVersions) dword:00000001
    HKEY\_LOCAL\_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727 系统默认TLS版本 (SystemDefaultTlsVersions) dword:00000001
    HKEY\_LOCAL\_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 系统默认TLS版本 (SystemDefaultTlsVersions) dword:00000001
    HKEY\_LOCAL\_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319 系统默认TLS版本 (SystemDefaultTlsVersions) dword:00000001
  2. 使用这些方法将 Windows 配置为仅使用 TLS 1.3:

    方法 1:手动修改注册表

    重要

    如果注册表修改错误,可能会出现严重的问题。 在开始之前,请备份注册表,以便在出现问题时还原它。

    若要启用或禁用整个系统的所有 SCHANNEL 协议,请执行以下步骤:

    注意

    建议为传入通信启用 TLS 1.3 协议。 为所有传出通信启用 TLS 1.3、TLS 1.2、TLS 1.1 和 TLS 1.0 协议。 注册表更改不会影响 Kerberos 协议或 NTLM 协议的使用。

    a。 启动“注册表编辑器”。 若要进行此操作,请右键单击“开始”,在“运行”框中键入“regedit”,然后选择“确定” 。

    b. 找到以下注册表子项:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols

    选项c. 右键单击“协议”,然后指向新建>

    新注册表项的屏幕截图。

    d。 输入“SSL 3.0”。

    e。 重复前面的两个步骤,为 TLS 0、TLS 1.1、TLS 1.2 和 TLS 1.3 创建密钥。 这些键类似于目录。

    f。 在 SSL 3.0、TLS 1.0、TLS 1.1、TLS 1.2 和 TLS 1.3 密钥下创建客户端密钥和服务器密钥。

    g。 若要启用协议,请在每个客户端和服务器密钥下创建 DWORD 值,如下所示:

    • DisabledByDefault [值 = 0]
    • 启用 [值 = 1]

    h. 若要禁用协议,请更改每个客户端和服务器密钥下的 DWORD 值,如下所示:

    • 默认禁用 [Value = 1]
    • 已启用 [值 = 0]

    一. 选择文件>退出

    方法 2:自动修改注册表

    在管理员模式下运行以下 Windows PowerShell 脚本,以自动将 Windows 配置为仅使用 TLS 1.3 协议:

       $ProtocolList       = @("SSL 2.0", "SSL 3.0", "TLS 1.0", "TLS 1.1", "TLS 1.2", “TLS 1.3”) 
    
       $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.3") 
    
            { 
    
                Write-Output " Enabling - TLS 1.3" 
    
                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 " " 
    
        } 
    
    } 
    
  3. 在所有 Service Manager 角色上安装以下更新。 更新管理服务器、Azure 数据仓库服务器、自助服务门户和分析控制台(包括安装在 Orchestrator Runbook 服务器上的分析控制台)中的角色。

    操作系统 所需的更新
    Windows 8.1 和 Windows Server 2012 R2 3154520 Windows 8.1 和 Windows Server 2012 R2 上 .NET Framework 3.5 中包含的 TLS 系统默认版本支持
    Windows Server 2012 3154519 Windows Server 2012 上 .NET Framework 3.5 中包含的 TLS 系统默认版本的支持
    Windows 7 SP1 和 Windows Server 2008 R2 SP1 3154518 Windows 7 SP1 和 Server 2008 R2 SP1 上 .NET Framework 3.5.1 中包含的 TLS 系统默认版本支持
    Windows 10 和 Windows Server 2016 3154521 修补程序汇总 3154521 - 针对 Windows 上的 .NET Framework 4.5.2 和 4.5.1

    3156421 Windows 10 版本 1511 和 Windows Server 2016 Technical Preview 4 的累积更新:2016 年 5 月 10 日
  4. 重新启动计算机。

注意

将 Microsoft System Center Orchestrator 设置为仅对连接使用 TLS 1.3 协议后,集成包将停止工作。

若要解决此问题,请执行以下步骤:

  1. 启动“注册表编辑器”。
  2. 找到以下注册表子项:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319
  3. 检查 SystemDefaultTlsVersions 值是否存在。 - 如果值存在,请确保其数据设置为 1。 - 如果值不存在,请创建一个 DWORD (32 位)值,并指定以下值:Name: SystemDefaultTlsVersions 值数据: 1
  4. 选择“确定”

有关详细信息,请参阅 此知识库文章

后续步骤

详细了解 TLS 1.2 协议。