Udostępnij za pośrednictwem


Implementowanie protokołu Transport Layer Security 1.2

W tym artykule opisano sposób zezwalania programowi System Center Operations Manager na korzystanie z protokołu Transport Layer Security (TLS) 1.2.

Uwaga

Program Operations Manager będzie używać protokołu skonfigurowanego na poziomie systemu operacyjnego. Jeśli na przykład protokół TLS 1.0, TLS 1.1 i TLS 1.2 są włączone na poziomie systemu operacyjnego, program Operations Manager wybierze jeden z trzech protokołów w następującej kolejności preferencji:

  1. PROTOKÓŁ TLS w wersji 1.2
  2. TLS w wersji 1.1
  3. Protokół TLS w wersji 1.0

Dostawca SSP Schannel wybiera następnie najbardziej preferowany protokół uwierzytelniania obsługiwany przez klienta i serwer.

Wykonaj następujące kroki, aby zaimplementować protokół TLS w wersji 1.2 w programie Operations Manager:

Uwaga

Sterownik Microsoft OLE DB 18 dla programu SQL Server (zalecane) jest obsługiwany w programie Operations Manager 2016 UR9 lub nowszym.

  1. Zainstaluj program SQL Server 2012 Native Client 11.0 lub sterownik Microsoft OLE DB (x64) na wszystkich serwerach zarządzania i serwerze konsoli sieci Web.
  2. Zainstaluj sterownik Microsoft ODBC (x64) na wszystkich serwerach zarządzania i serwerze konsoli sieci Web.
  3. Zainstaluj wymaganą aktualizację programu SQL Server, która obsługuje protokół TLS 1.2.
  4. Zainstaluj co najmniej pakiet zbiorczy aktualizacji 4 dla programu SCOM 2016 we wszystkich składnikach.
  5. Upewnij się, że serwery mają zainstalowaną minimalną wersję .NET 4.6 jako zgodną z systemem operacyjnym: wersje i zależności programu .NET Framework
    1. Nie instaluj programu .NET 4.8, ponieważ wystąpiły znane problemy z niezgodnościami programu SCOM 2016.
  6. Skonfiguruj system Windows tak, aby używał tylko protokołu TLS 1.2.
  7. Skonfiguruj platformę .NET domyślnie do korzystania z protokołu TLS 1.2.
  8. Skonfiguruj usługi Audit Collection Services, jeśli są zainstalowane.
  1. Zainstaluj sterownik MICROSOFT OLE DB dla programu SQL w wersji 18.7.4 na wszystkich serwerach zarządzania i serwerze konsoli sieci Web.
  2. Zainstaluj sterownik MICROSOFT ODBC dla programu SQL w wersji 17.10.6 na wszystkich serwerach zarządzania i serwerze konsoli sieci Web.
  3. Skonfiguruj system Windows tak, aby używał tylko protokołu TLS 1.2.
  4. Skonfiguruj platformę .NET domyślnie do korzystania z protokołu TLS 1.2.
  5. Skonfiguruj usługi Audit Collection Services, jeśli są zainstalowane.

Uwaga

W przypadku korzystania z szyfrowania połączeń z programem SQL Server należy zainstalować następujące wersje sterowników:

Więcej informacji na temat konfigurowania szyfrowania połączeń SQL można znaleźć tutaj: Konfigurowanie aparatu bazy danych programu SQL Server pod kątem szyfrowania połączeń

Program Operations Manager generuje certyfikaty SHA1 i SHA2 z podpisem własnym. Jest to wymagane do włączenia protokołu TLS 1.2. Jeśli są używane certyfikaty podpisane przez urząd certyfikacji, upewnij się, że certyfikaty są sha1 lub SHA2.

Uwaga

Jeśli zasady zabezpieczeń ograniczają protokoły TLS 1.0 i 1.1, zainstalowanie nowego serwera zarządzania programu Operations Manager 2016, serwera bramy, konsoli sieci Web i roli usług Reporting Services zakończy się niepowodzeniem, ponieważ nośnik instalacyjny nie zawiera aktualizacji obsługujących protokół TLS 1.2. Jedynym sposobem instalowania tych ról jest włączenie protokołu TLS 1.0 w systemie, zastosowanie pakietu zbiorczego aktualizacji 4, a następnie włączenie protokołu TLS 1.2 w systemie. To ograniczenie nie dotyczy programu Operations Manager w wersji 1801.

Konfigurowanie systemu operacyjnego Windows do używania tylko protokołu TLS 1.2

Użyj jednej z następujących metod, aby skonfigurować system Windows do używania tylko protokołu TLS 1.2.

Metoda 1. Ręczne modyfikowanie rejestru

Ważne

Należy rozważnie wykonywać czynności podane w tej sekcji. Niepoprawne zmodyfikowanie rejestru może być przyczyną poważnych problemów. Przed zmodyfikowaniem rejestru należy utworzyć jego kopię zapasową, aby móc przywrócić rejestr na wypadek problemów.

Wykonaj poniższe kroki, aby włączyć/wyłączyć wszystkie protokoły SCHANNEL dla całego systemu. Zalecamy włączenie protokołu TLS 1.2 dla całej komunikacji przychodzącej i komunikacji wychodzącej.

Uwaga

Wprowadzanie tych zmian rejestru nie ma wpływu na użycie protokołów Kerberos ani NTLM.

  1. Zaloguj się na komputerze przy użyciu konta z lokalnymi poświadczeniami administracyjnymi.

  2. Uruchom Edytor rejestru, wybierając i trzymając przycisk Start, wprowadź ciąg regedit w polu tekstowym Uruchom i wybierz przycisk OK.

  3. Odszukaj następujący podklucz rejestru:

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols

  4. Utwórz podklucz w obszarze Protokoły dla:

    1. SSL 2.0
    2. SSL 3.0
    3. TLS 1.0
    4. TLS 1.1
    5. TLS 1.2.
  5. Utwórz podklucz Klient i serwer w ramach każdego utworzonego wcześniej podklucza wersji protokołu. Na przykład podklucz protokołu TLS 1.0 będzie

    • 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
  6. Aby wyłączyć każdy protokół, utwórz następujące wartości DWORD w obszarze Serwer i klient:

    • Włączone [Wartość = 0]
    • DisabledByDefault [Wartość = 1]
  7. Aby włączyć protokół TLS 1.2, utwórz następujące klucze rejestru:

    • 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:
  8. Następnie utwórz następujące wartości DWORD w obszarze Serwer i klient:

    • Włączone [Wartość = 1]
    • DisabledByDefault [Wartość = 0]
  9. Zamknij Edytor rejestru.

Metoda 2. Automatyczne modyfikowanie rejestru

Uruchom następujący skrypt programu Windows PowerShell jako administrator, aby automatycznie skonfigurować system operacyjny Windows do używania tylko protokołu 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 " "
}

Konfigurowanie programu .NET Framework do używania tylko protokołu TLS 1.2

Platforma .NET zwykle wymaga, aby aplikacja zdefiniowała protokół TLS do użycia na potrzeby komunikacji, jednak w wystąpieniu programu SCOM musimy poinformować cały system .NET, jakiego protokołu używać.

Po zakończeniu konfiguracji wszystkich wymagań wstępnych programu Operations Manager wykonaj następujące kroki na wszystkich serwerach zarządzania, serwerze obsługującym rolę konsoli sieci Web i na dowolnym komputerze z systemem Windows, na którym jest zainstalowany agent.

Ważne

Należy rozważnie wykonywać czynności podane w tej sekcji. Niepoprawne zmodyfikowanie rejestru może być przyczyną poważnych problemów. Przed wprowadzeniem jakichkolwiek modyfikacji wykonaj kopię zapasową rejestru w celu przywrócenia w przypadku wystąpienia problemów.

Uwaga

Program SCOM działający w systemie operacyjnym Windows 2012 wymaga dodatkowych zmian w celu korzystania z protokołu TLS 1.2 za pośrednictwem protokołu HTTP na potrzeby monitorowania systemu UNIX/LINUX. Aby włączyć protokół TLS 1.2 jako domyślne protokoły zabezpieczeń w systemie Windows WinHTTP, należy wprowadzić następujące zmiany zgodnie z aktualizacją, aby włączyć protokoły TLS 1.1 i TLS 1.2 jako domyślne bezpieczne protokoły w winHTTP w systemie Windows.

  1. Zainstaluj KB3140245 na serwerach zarządzania/serwerach bram w puli zasobów systemu UNIX/LINUX.
  2. Tworzenie kopii zapasowych rejestrów, które są modyfikowane zgodnie z opisem w artykule bazy wiedzy.
  3. Pobierz i uruchom narzędzie Easy Fix na serwerach zarządzania/bramach w puli zasobów systemu UNIX/LINUX.
  4. Uruchom ponownie serwery.

Ręczne modyfikowanie rejestru

  1. Otwórz Edytor rejestru
  2. Znajdź następujący podklucz rejestru: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727
    1. Utwórz następujące pary wartości DWORD:
      • SchUseStrongCrypto [Wartość = 1]
      • SystemDefaultTlsVersions [Wartość = 1]
  3. Znajdź następujący podklucz rejestru: HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v2.0.50727
    1. Utwórz następujące pary wartości DWORD:
      • SchUseStrongCrypto [Wartość = 1]
      • SystemDefaultTlsVersions [Wartość = 1]
  4. Znajdź następujący podklucz rejestru: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319
    1. Utwórz następujące pary wartości DWORD:
      • SchUseStrongCrypto [Wartość = 1]
      • SystemDefaultTlsVersions [Wartość = 1]
  5. Znajdź następujący podklucz rejestru: HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319
    1. Utwórz następujące pary wartości DWORD:
      • SchUseStrongCrypto [Wartość = 1]
      • SystemDefaultTlsVersions [Wartość = 1]
  6. Uruchom ponownie system, aby ustawienia zaczęły obowiązywać.

Automatyczne modyfikowanie rejestru

Uruchom następujący skrypt programu Windows PowerShell w trybie administratora, aby automatycznie skonfigurować program .NET Framework, aby zapobiec dziedziczeniu struktury zależności protokołu 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

Ustawienia dodatkowe

Jeśli jest to implementowane dla programu System Center 2016 — Operations Manager, po zastosowaniu pakietu zbiorczego aktualizacji 4 należy zaimportować pakiety administracyjne uwzględnione w tym pakiecie zbiorczym znajdującymi się w następującym katalogu: \Program Files\Microsoft System Center 2016\Operations Manager\Server\Management Packs for Update Rollups.

Jeśli monitorujesz obsługiwaną wersję serwera z systemem Linux za pomocą programu Operations Manager, postępuj zgodnie z instrukcjami w odpowiedniej witrynie internetowej dla dystrybucji, aby skonfigurować protokół TLS 1.2.

Audit Collection Services

W przypadku usług Audit Collection Services (ACS) należy wprowadzić dodatkowe zmiany w rejestrze na serwerze modułu zbierającego ACS. Usługa ACS używa nazwy DSN do nawiązywania połączeń z bazą danych. Należy zaktualizować ustawienia DSN, aby były funkcjonalne dla protokołu TLS 1.2.

  1. Zaloguj się na komputerze przy użyciu konta z lokalnymi poświadczeniami administracyjnymi.

  2. Uruchom Edytor rejestru, wybierając i trzymając przycisk Start, wprowadź ciąg regedit w polu tekstowym Uruchom i wybierz przycisk OK.

  3. Znajdź następujący podklucz ODBC dla programu OpsMgrAC: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\OpsMgrAC.

    Uwaga

    Domyślną nazwą nazwy DSN jest OpsMgrAC.

  4. W podkluczu Źródła danych ODBC wybierz nazwę DSN OpsMgrAC. Zawiera on nazwę sterownika ODBC, który ma być używany na potrzeby połączenia z bazą danych. Jeśli masz zainstalowaną wersję ODBC 11.0, zmień tę nazwę na STEROWNIK ODBC 11 dla programu SQL Server lub jeśli masz zainstalowaną wersję ODBC 13.0, zmień tę nazwę na STEROWNIK ODBC 13 dla programu SQL Server.

  5. W podkluczu OpsMgrAC zaktualizuj sterownik dla zainstalowanej wersji ODBC.

    • Jeśli zainstalowano sterownik ODBC 11.0, zmień wpis Sterownik na %WINDIR%\system32\msodbcsql11.dll.
    • Jeśli zainstalowano sterownik ODBC 13.0, zmień wpis Sterownik na %WINDIR%\system32\msodbcsql13.dll.
    • Jeśli zainstalowano sterownik ODBC 17.0, zmień wpis Sterownik na %WINDIR%\system32\msodbcsql17.dll.
    • Jeśli zainstalowano sterownik ODBC 18.0, zmień wpis Sterownik na %WINDIR%\system32\msodbcsql18.dll.

Plik rejestru

Alternatywnie utwórz i zapisz następujący plik .reg w Notatniku lub innym edytorze tekstów. Aby uruchomić zapisany plik .reg , kliknij dwukrotnie plik.

  • W przypadku wersji ODBC 11.0, 13.0, 17.x lub 18.x. Utwórz następujący plik ODBC.reg i (zastąp używaną wersją 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

Alternatywnie możesz uruchomić następujące polecenia programu PowerShell, aby zautomatyzować zmianę.

  • W przypadku odBC 11.0 uruchom następujące polecenia programu 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
    
  • W przypadku programu ODBC 13.0 uruchom następujące polecenia programu 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
    

Audit Collection Services

W przypadku usług Audit Collection Services (ACS) należy wprowadzić dodatkowe zmiany w rejestrze na serwerze modułu zbierającego ACS. Usługa ACS używa nazwy DSN do nawiązywania połączeń z bazą danych. Należy zaktualizować ustawienia DSN, aby były funkcjonalne dla protokołu TLS 1.2.

  1. Zaloguj się na komputerze przy użyciu konta z lokalnymi poświadczeniami administracyjnymi.
  2. Uruchom Edytor rejestru, wybierając i trzymając przycisk Start, wprowadź ciąg regedit w polu tekstowym Uruchom i wybierz przycisk OK.
  3. Znajdź następujący podklucz ODBC dla programu OpsMgrAC: HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\OpsMgrAC.

Uwaga

Domyślną nazwą nazwy DSN jest OpsMgrAC.

  1. W podkluczu Źródła danych ODBC wybierz nazwę DSN OpsMgrAC. Zawiera on nazwę sterownika ODBC, który ma być używany na potrzeby połączenia z bazą danych. Jeśli masz zainstalowany sterownik ODBC 17, zmień tę nazwę na ODBC Driver 17 dla programu SQL Server.
  2. W podkluczu OpsMgrAC zaktualizuj sterownik dla zainstalowanej wersji ODBC.
    • Jeśli na przykład zainstalowano sterownik ODBC 17, zmień wpis Sterownik na %WINDIR%\system32\msodbcsql17.dll.
    • Sprawdź nazwę biblioteki DLL dla bieżącej wersji sterownika ODBC zainstalowanego, jeśli jest inaczej.

Plik rejestru

Alternatywnie utwórz i zapisz następujący plik .reg w Notatniku lub innym edytorze tekstów. Aby uruchomić zapisany plik .reg , kliknij dwukrotnie plik.

  • W przypadku odBC 17 utwórz następujący plik 17.reg ODBC:

    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

Alternatywnie możesz uruchomić następujące polecenia programu PowerShell, aby zautomatyzować zmianę.

  • Upewnij się, że należy zastąpić ścieżkę pliku dll do odpowiedniej wersji, jeśli jest używana wersja sterownika ODBC inna niż 17.

    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
    

Następne kroki