Udostępnij za pośrednictwem


Konfigurowanie protokołu TLS 1.3 dla programu VMM

W tym artykule opisano sposób konfigurowania protokołu Transport Security Layer (TLS) w wersji 1.3 z serwerem programu System Center Virtual Machine Manager (VMM).

Uwaga

Program Virtual Machine Manager będzie używać protokołu skonfigurowanego na poziomie systemu operacyjnego. Jeśli na przykład protokoły TLS 1.2 i TLS 1.3 są włączone na poziomie systemu operacyjnego, program Virtual Machine Manager wybierze jeden z dwóch protokołów w następującej kolejności preferencji:

  1. PROTOKÓŁ TLS w wersji 1.3
  2. PROTOKÓŁ TLS w wersji 1.2

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

Przed rozpoczęciem

  • Poprawki zabezpieczeń powinny być aktualne na serwerze programu VMM i na serwerze z uruchomioną bazą danych programu VMM.
  • Na serwerze programu VMM powinien być uruchomiony program .NET w wersji 4.6 lub nowszej. Postępuj zgodnie z tymi instrukcjami , aby określić, która wersja platformy .NET jest zainstalowana.
  • • TLS 1.3. wymaga protokołu TLS 1.2. do skonfigurowania.
  • Aby pracować z protokołem TLS 1.3, składniki programu System Center generują certyfikaty SHA1 lub SHA2 z podpisem własnym. Jeśli używane są certyfikaty SSL z certyfikatów urzędu certyfikacji, powinny używać algorytmu SHA1 lub SHA2.

Konfigurowanie serwera programu VMM do używania protokołu TLS 1.3

Wyłącz wszystkie protokoły SCHANNEL z wyjątkiem protokołów TLS 1.3 i 1.2.

Ręczne modyfikowanie rejestru

  1. Otwórz Edytor rejestru i przejdź do HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols.
  2. Kliknij prawym przyciskiem myszy pozycję Protokół, wybierz pozycję Nowy>klucz. Wprowadź i naciśnij Enter. Wykonaj tę procedurę, aby utworzyć następujące klucze:
    • SSL3
    • TLS 1.2
    • TLS 1.3
  3. Po utworzeniu tych kluczy należy utworzyć w nim klucze klienta i serwera .
    • W polu SSL3 wybierz pozycję Nowy>klucz. Wprowadź wartość Client (Klient) i naciśnij Enter. Ponownie w polu SSL3 ponownie wybierz pozycję Nowy>klucz. Następnie wprowadź ciąg Serwer i naciśnij Enter.
    • Powtórz akcję, aby utworzyć klucze klienta i serwera w ramach protokołów TLS 1.2 i TLS 1.3.
  4. Po utworzeniu kluczy klienta i serwera należy utworzyć w nich wartości DWORD, aby włączyć i wyłączyć protokoły. Wykonaj następujące czynności:
    • Włącz protokół TLS 1.2. W tym celu w protokole TLS 1.2 w obszarze Klucz klienta utwórz wartość DWORD DisabledByDefault i ustaw wartość 0. Teraz utwórz wartość DWORD Włączone i ustaw wartość 1. Utwórz te same wartości DWORD w kluczu serwera .
    • Włącz protokół TLS 1.3. W tym celu w protokole TLS 1.3 w obszarze Klucz klienta utwórz wartość DWORD DisabledByDefault i ustaw wartość 0. Teraz utwórz wartość DWORD Włączone i ustaw wartość 1. Utwórz te same wartości DWORD w kluczu serwera .
    • Teraz wyłącz inne protokoły. W tym celu w usługach SSL3 i TLS 1.2 w obszarze Klucz klienta utwórz wartość DWORD DisabledByDefault i ustaw wartość 1. Teraz utwórz wartość DWORD Włączone i ustaw wartość 0. Utwórz te same wartości DWORD w kluczu serwera .

Modyfikowanie rejestru za pomocą skryptu programu PowerShell

Zamiast ręcznie modyfikować wartości rejestru, możesz użyć następującego skryptu programu PowerShell.

$ProtocolList       = @(""SSL 3.0", "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.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 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 " "
	}
}

Exit 0

Konfigurowanie programu VMM do używania protokołu TLS 1.3

  1. Otwórz edytor rejestru na serwerze programu VMM. Przejdź do HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ . NetFramework\v4.0.30319.
  2. Utwórz wartość DWORD SchUseStrongCrypto i ustaw wartość 1.
  3. Teraz przejdź do HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft
    . NetFramework\v4.0.30319
    .
  4. W tej lokalizacji utwórz tę samą wartość DWORD SchUseStrongCrypto i ustaw wartość 1.
  5. Uruchom ponownie serwer, aby ustawienia zaczęły obowiązywać.

Modyfikowanie rejestru za pomocą skryptu programu PowerShell

Ustawienia rejestru można zmodyfikować przy użyciu następującego skryptu programu PowerShell.

# 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

Następne kroki