Transport Layer Security (TLS) 1.2 — это криптографический протокол, предназначенный для обеспечения безопасных коммуникаций за счёт конфиденциальности и целостности данных. Microsoft сделала TLS 1.2 минимальным требованием для многих облачных служб, включая Microsoft Entra Connect. В этой статье приведены пошаговые инструкции по принудительному применению TLS 1.2 для облачных приложений Microsoft, включая приложения ASP.NET, и для серверов Microsoft Entra Connect.
Почему TLS 1.2 так важен
TLS 1.2 обеспечивает более надёжное шифрование и безопасность по сравнению с предыдущими версиями, что делает его необходимым для безопасной связи в облачных средах. Microsoft Entra Connect версии 1.2.65.0 и более поздних полностью поддерживает TLS 1.2, а версии 2.3.20.0 и более поздним TLS 1.2 требуется для работы.
Если TLS 1.2 не включён на вашем сервере, включите его перед развёртыванием или обновлением до Microsoft Entra Connect версии 2.0 или более поздней.
Решения для принудительного применения TLS 1.2
Шаги по принудительному применению TLS 1.2 различаются в зависимости от настраиваемого приложения или службы. Ниже приведены подробные решения для распространённых сценариев.
1. Для веб-приложений ASP.NET
- Обновите целевую платформу
Убедитесь, что целевая платформа приложения установлена на 4.6.2 или выше. Использование более новой версии повышает производительность и безопасность. - Измените файл Web.Config
Обновите файлWeb.Config, чтобы указать целевую платформу:<system.web> <httpRuntime targetFramework="4.7.2" /> </system.web>Сведения о поддерживаемых версиях .NET Framework см. в документе Жизненный цикл Microsoft .NET Framework.
2. Если обновить Web.Config невозможно
Если изменить файл Web.Config невозможно, используйте следующий обходной путь, добавив этот код в начало приложения:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Ssl3;
Это гарантирует, что приложение явно использует TLS 1.2 для безопасной связи.
3. Принудительное применение TLS 1.2 для Microsoft Entra Connect
На серверах Microsoft Entra Connect должен быть включён TLS 1.2 для обеспечения безопасной связи с Azure. Выполните следующие шаги, чтобы принудительно применить TLS 1.2:
Обновите реестр
Обновите реестр на сервере Microsoft Entra Connect, чтобы принудительно применить TLS 1.2. Используйте следующие ключи реестра:
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319]
"SystemDefaultTlsVersions"=dword:00000001
"SchUseStrongCrypto"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319]
"SystemDefaultTlsVersions"=dword:00000001
"SchUseStrongCrypto"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server]
"Enabled"=dword:00000001
"DisabledByDefault"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client]
"Enabled"=dword:00000001
"DisabledByDefault"=dword:00000000
Важно: после обновления реестра перезапустите сервер Windows, чтобы изменения вступили в силу.
4. Использование сценариев PowerShell
Проверка параметров TLS 1.2
Для проверки текущих параметров TLS 1.2 на сервере Microsoft Entra Connect можно использовать следующий сценарий PowerShell:
Function Get-ADSyncToolsTls12RegValue {
[CmdletBinding()]
Param (
[Parameter(Mandatory=$true)]
[string] $RegPath,
[Parameter(Mandatory=$true)]
[string] $RegName
)
$regItem = Get-ItemProperty -Path $RegPath -Name $RegName -ErrorAction Ignore
$output = "" | select Path, Name, Value
$output.Path = $RegPath
$output.Name = $RegName
$output.Value = $regItem.$RegName -ne $null ? $regItem.$RegName : "Not Found"
$output
}
$regSettings = @()
$regPaths = @(
'HKLM:\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319',
'HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319',
'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server',
'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client'
)
foreach ($regPath in $regPaths) {
$regSettings += Get-ADSyncToolsTls12RegValue $regPath 'SystemDefaultTlsVersions'
$regSettings += Get-ADSyncToolsTls12RegValue $regPath 'SchUseStrongCrypto'
}
$regSettings
Включение TLS 1.2
Чтобы принудительно применить TLS 1.2, используйте следующий сценарий PowerShell:
New-ItemProperty -Path 'HKLM:\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319' -Name 'SystemDefaultTlsVersions' -Value '1' -PropertyType 'DWord' -Force | Out-Null
New-ItemProperty -Path 'HKLM:\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -PropertyType 'DWord' -Force | Out-Null
New-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319' -Name 'SystemDefaultTlsVersions' -Value '1' -PropertyType 'DWord' -Force | Out-Null
New-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -PropertyType 'DWord' -Force | Out-Null
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server' -Name 'Enabled' -Value '1' -PropertyType 'DWord' -Force | Out-Null
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client' -Name 'Enabled' -Value '1' -PropertyType 'DWord' -Force | Out-Null
Write-Host 'TLS 1.2 has been enabled. Restart the server for changes to take effect.'
Заключительные мысли
Принудительное применение TLS 1.2 — важный шаг для поддержания безопасной связи и соответствия требованиям служб Microsoft Cloud и Azure. Настраиваете ли вы приложения ASP.NET или серверы Microsoft Entra Connect, представленные здесь решения помогут обеспечить совместимость и безопасность.
Дополнительные сведения см. в официальной документации Microsoft: