Как отключить TLS 1.0 на Windows Server 2012, имеющей 4.5 .Net Framework, используя ключи реестра
Может ли кто-нибудь предоставить решение для отключения TLS 1.0 в качестве протокола по умолчанию в Windows Server 2012 Standard с установленным на машине 4.5 .Net Framework. Приложение, запущенное на сервере, имеет целевую платформу.NET 4.5 и устанавливает соединение с другим сервером, на котором включен только TLS 1.2.
Я попытался установить следующие реестры, но он все еще выполняет вызов на TLS1.0:
[HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ SecurityProviders \ SCHANNEL \ Protocols \ TLS 1.2 \ Client] "DisabledByDefault" = dword: 00000000
[HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ SecurityProviders \ SCHANNEL \ Protocols \ TLS 1.2 \ Server] "Включено"=dword:00000001 "DisabledByDefault"=dword:00000000
Сайт документации Microsoft только перечисляет исправления в коде, устанавливая протокол безопасности, как показано ниже
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
Но есть ли способ добиться этого через реестр?
1 ответ
Для тех, у кого похожие проблемы:
Откройте PowerShell запустить от имени администратора:
Обратите внимание на ответ
Ssl3, Tls
выполните следующие 2 команды в Powershell Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft.NetFramework\v4.0.30319' -Name 'SchUseStrongCrypto' -Value '1' -Тип DWord
Set-ItemProperty -Path 'HKLM: \ SOFTWARE \ Wow6432Node \ Microsoft.NetFramework \ v4.0.30319' -Name 'Sc hUseStrongCrypto' -Value '1' -Тип DWord
Закройте PowerShell, снова откройте при запуске администратора. Теперь обратите внимание на вывод, система будет работать без использования этого кода в коде System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
Ouput: Tls, Tls11, Tls12
Отключите Tls1 на Os, и он будет согласовывать Tls12, если доступно