Как включить поддержку протокола TLS 1.2 в Windows 7 Chop etish

  • 0

Протоколы TLS 1.0 и TLS 1.1 признаны устаревшими. Современные системы и приложения требуют использования более безопасных версий TLS 1.2 или TLS 1.3. В этой статье рассматриваются способы включения TLS 1.2 в Windows, а также для приложений на базе WinHTTP и .NET Framework.
Поддержка TLS 1.2 по умолчанию

Во всех современных версиях Windows TLS 1.2 включён изначально:

Windows 11 / 10 / 8.1

Windows Server 2022 / 2019 / 2016 / 2012 R2

Включение TLS 1.2 в Windows 7 и Windows Server 2008 R2 / 2012

Для устаревших систем необходимо выполнить следующие шаги:
1. Обновите ОС

Убедитесь, что установлена Windows 7 SP1 или соответствующий Service Pack.

Установите обновление KB3140245.

2. Примените Microsoft Easy Fix

Скачайте и установите утилиту MicrosoftEasyFix51044.msi — она добавляет необходимые параметры реестра для TLS 1.2.

3. Перезагрузите компьютер
Настройка параметров реестра

Для активации TLS 1.2 добавьте следующие значения:
SCHANNEL (TLS 1.2 клиент/сервер)

[HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client]
"DisabledByDefault"=dword:00000000
"Enabled"=dword:00000001

[HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server]
"DisabledByDefault"=dword:00000000
"Enabled"=dword:00000001

Настройка WinHTTP
Пути для 32- и 64-битных приложений:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp

Рекомендуемое значение параметра:

DefaultSecureProtocols = 0x00000800 // только TLS 1.2

Значение Протоколы
0x000000A0 SSL 3.0 + TLS 1.0
0x00000AA0 SSL 3.0 + TLS 1.0–1.2
0x00000A00 TLS 1.1 + TLS 1.2
0x00000800 Только TLS 1.2
PowerShell-скрипт для настройки TLS 1.2

$reg32bWinHttp = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp"
$reg64bWinHttp = "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp"
$regWinHttpDefault = "DefaultSecureProtocols"
$regWinHttpValue = "0x00000800"
$regTLS12Client = "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client"
$regTLS12Server = "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server"
$regTLSDefault = "DisabledByDefault"
$regTLSValue = "0x00000000"
$regTLSEnabled = "Enabled"
$regTLSEnableValue = "0x00000001"

# Для Windows x86
if (-not (Test-Path -Path $reg32bWinHttp)) {
New-Item -Path $reg32bWinHttp -Force
}
New-ItemProperty -Path $reg32bWinHttp -Name $regWinHttpDefault -Value $regWinHttpValue -PropertyType DWORD -Force

# Для Windows x64
if (-not (Test-Path -Path $reg64bWinHttp)) {
New-Item -Path $reg64bWinHttp -Force
}
New-ItemProperty -Path $reg64bWinHttp -Name $regWinHttpDefault -Value $regWinHttpValue -PropertyType DWORD -Force

# Настройка TLS 1.2
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2" -Force
New-Item -Path $regTLS12Client -Force
New-Item -Path $regTLS12Server -Force

New-ItemProperty -Path $regTLS12Client -Name $regTLSDefault -Value $regTLSValue -PropertyType DWORD -Force
New-ItemProperty -Path $regTLS12Client -Name $regTLSEnabled -Value $regTLSEnableValue -PropertyType DWORD -Force
New-ItemProperty -Path $regTLS12Server -Name $regTLSDefault -Value $regTLSValue -PropertyType DWORD -Force
New-ItemProperty -Path $regTLS12Server -Name $regTLSEnabled -Value $regTLSEnableValue -PropertyType DWORD -Force

# Перезагрузка системы
Restart-Computer

Включение TLS 1.2 в .NET Framework

Для корректной работы приложений на .NET с TLS 1.2 необходимо принудительно задать использование системных протоколов:
Для .NET 2.0 / 3.5:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]
"SystemDefaultTlsVersions"=dword:00000001
"SchUseStrongCrypto"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727]
"SystemDefaultTlsVersions"=dword:00000001
"SchUseStrongCrypto"=dword:00000001

Для .NET 4.0 – 4.5.2:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]
"SystemDefaultTlsVersions"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319]
"SystemDefaultTlsVersions"=dword:00000001

Для .NET 4.6 и выше:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]
"SchUseStrongCrypto"=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319]
"SchUseStrongCrypto"=dword:00000001

Важно: если вы используете .NET 4.5.1 или 4.5.2 на Windows Server 2012 / R2, обязательно установите последние обновления .NET, иначе TLS 1.2 может не поддерживаться.
Возможные ошибки без настройки

Если не включить TLS 1.2 для .NET, при работе с PowerShell Gallery может возникнуть ошибка:

Install-Module: Unable to download from URI
Unable to resolve package source

Причина — использование TLS 1.0, который больше не поддерживается на PSGallery (с апреля 2020 года).
Альтернатива: настройка через IISCrypto

Вы можете использовать утилиту IISCrypto для управления протоколами TLS/SSL и параметрами Schannel через графический интерфейс.

Выберите версии TLS для включения.

Если флажки недоступны (серые), значит используются стандартные настройки Windows.

Настройки .NET и WinHTTP IISCrypto не изменяет — их нужно настраивать вручную или через PowerShell, как показано выше.


Bu javob sizga yordam berdimi?

«Orqaga