Настройка протокола TLS для VMM

Важно!

Поддержка этой версии Virtual Machine Manager (VMM) завершена. Рекомендуется выполнить обновление до VMM 2022.

Эта статья описывает, как настроить протокол TLS версии 1.2 на сервере System Center Virtual Machine Manager (VMM).

Примечание

Virtual Machine Manager будет использовать протокол, настроенный на уровне операционной системы. Например, если протоколы TLS 1.0, TLS 1.1 и TLS 1.2 включены на уровне операционной системы, То Virtual Machine Manager выберет один из трех протоколов в следующем порядке:

  1. TLS версии 1.2;
  2. TLS версии 1.1;
  3. TLS версии 1.0.

Затем Schannel SSP выберет наиболее подходящий протокол проверки подлинности, который может поддерживать и клиент, и сервер.

Перед началом работы

  • Исправления системы безопасности должны быть актуальными на сервере VMM и сервере, на котором работает база данных VMM.
  • Сервер VMM должен работать под управлением .NET версии 4.6. Выполните эти инструкции, чтобы определить установленную версию .NET.
  • Для работы с TLS 1.2 компоненты System Center создают самозаверяющие сертификаты — SHA1 или SHA2. Если используются сертификаты SSL, выданные центром сертификации (ЦС), требуются сертификаты SHA1 или SHA2.

Установка обновления SQL Server для поддержки TLS 1.2

  1. Откройте статью базу данных 3135244.
  2. Скачайте и установите обновление для используемой версии SQL Server.
    • Это обновление не требуется, если вы используете SQL Server 2016.
    • SQL Server 2008 R2 не поддерживает TLS 1.2.

Настройка сервера VMM для использования TLS 1.2

Отключите все протоколы SCHANNEL, за исключением TLS 1.2.

Изменение реестра вручную

  1. Откройте редактор реестра и перейдите к разделу реестра HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols.
  2. Щелкните правой кнопкой мыши Протоколвыберите СоздатьРаздел. Введите клавишу и нажмите клавишу ВВОД. Выполните эту процедуру, чтобы создать следующие разделы:
    • SSL3
    • TLS 1.0
    • TLS 1.1
    • TLS 1.2
  3. Создав эти разделы, создайте в каждом разделе разделы Client и Server.
    • Для SSL3 выберите СоздатьРаздел. Введите Клиент и нажмите клавишу ВВОД. Для SSL3 снова выберите СоздатьРаздел. Затем введите Сервер и нажмите клавишу ВВОД.
    • Повторите эти действия, чтобы создать аналогичные разделы Client и Server в разделах TLS 1.0, TLS 1.1 и TLS 1.2.
  4. После создания разделов Client и Server необходимо создать в них значения DWORD для включения и отключения протоколов. Для этого сделайте следующее:
    • Включите протокол TLS 1.2. Для этого в разделе TLS 1.2 разделе Client создайте параметр DWORD DisabledByDefault и установите для него значение 0. Теперь создайте параметр DWORD Enabled и установите для него значение 1. Создайте такие же значения параметра DWORD в разделе Server.
    • Теперь можно отключить другие протоколы. Для этого в разделах SSL3, TLS 1.0 и TLS 1.1 в разделе Client создайте параметр DWORD DisabledByDefault и установите для него значение 1. Теперь создайте параметр DWORD Enabled и установите для него значение 0. Создайте такие же значения параметра DWORD в разделе Server.

Изменение реестра с помощью скрипта PowerShell

Реестр можно изменять не только вручную, но и с помощью следующего скрипта PowerShell.

$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 " "
	}
}

Exit 0

Настройка VMM для использования TLS 1.2

  1. Откройте редактор реестра на сервере VMM. Перейдите к разделу HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ .NetFramework\v4.0.30319.
  2. Создайте параметр DWORD SchUseStrongCrypto и установите для него значение 1.
  3. Теперь перейдите к разделу HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft
    .NetFramework\v4.0.30319
    .
  4. В этом расположении создайте то же значение DWORD SchUseStrongCrypto и присвойте ей значение 1.
  5. Перезапустите сервер, чтобы изменения вступили в силу.

Изменение реестра с помощью скрипта PowerShell

Параметры реестра можно изменить с помощью следующего скрипта 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

Дальнейшие действия

Подробнее о протоколе TLS 1.2.