Как включить протокол TLS 1.2 в Windows?
13.10.2022
itpro
Windows 10, Windows 7, Windows Server 2012 R2, Windows Server 2016
комментариев 5
В этой статье мы рассмотрим, как включить протокол Transport Layer Securit (TLS 1.2) в различных версиях Windows, в том числе для приложений .Net и WinHTTP. Протоколы TLS 1.0 и TLS 1.1 являются устаревшими, и если вы мигрировали все ваши сервисы на TLS 1.2 или TLS 1.3, вы можете отключить поддержку старых версий протоколов на клиентах и серверах Windows (Отключение TLS 1.0 и TLS 1.1 с помощью групповых политик). Но перед этим, вам нужно убедиться, что на всех ваших клиентах поддерживается протокол TLS 1.2.
В современных версиях Windows (Windows 11/10/8.1 и Windows Server 2022/2019/2016/2012R2) протокол TLS 1.2 включен по-умолчанию. А вот в предыдущих версиях Windows (Windows 7, Windows Server 2008R2/2012), чтобы включить TLS 1.2, придется выполнить ряд предварительных настроек.
Windows XP и Vista не поддерживают TLS 1.2.
Например, чтобы включить TLS 1.2 в Windows 7 нужно:
- Убедится, что у вас установлен Windows 7 SP1;
- Скачать и вручную установить MSU обновлениеKB3140245 из Microsoft Update Catalog (https://www.catalog.update.microsoft.com/search.aspx?q=kb3140245);
- Далее нужно скачать и установить патч MicrosoftEasyFix51044.msi (патч добавляет в реестр параметры, которые обеспечивают поддержку TLS 1.2 в Windows 7/2008R2/2012);
Без этих обновлений Outlook на Windows 7 не сможет подключиться к современному почтовому серверу с ошибкой: 0x800CCC1A – Ваш сервер не поддерживает указанный вами тип шифрования. А при открытии некоторых сайтов может появляться ошибка Этот сайт не может обеспечить безопасное соединение.
На компьютере появятся следующие REG_DWORD параметры реестра в ветке HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client\ и HKLM\. Protocols\TLS 1.2\Servers :
Чтобы протокол TLS 1.2 использовался по-умолчанию для приложений на WinHttp API, нужно добавить REG_DWORD параметр DefaultSecureProtocols = 0x00000A00 в ветку HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp (на 64 битной версии Windows в ветке HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp).
Возможные значения параметра DefaultSecureProtocols, который определяет разрешенные протоколы для WinHTTP подключений:
- 0x00000A0 – значение по умолчанию, которое разрешает только SSL 3.0 и TLS 1.0 для WinHTTP;
- 0x0000AA0 — разрешить использовать TLS 1.1 и TLS 1.2 в дополнении к SSL 3.0 и TLS 1.0;
- 0x00000A00 – разрешить только TLS 1.1 и TLS 1.2;
- 0x00000800 – разрешить только TLS 1.2.
Начиная с Windows 10 и Windows Server 2016, все версии Windows поддерживают TLS 1.2 для коммуникаций через WinHTTP.
$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
$test = test-path -path $reg32bWinHttp
if(-not($test))New-Item -Path $reg32bWinHttp
>
New-ItemProperty -Path $reg32bWinHttp -Name $regWinHttpDefault -Value $regWinHttpValue -PropertyType DWORD
# Для Windows x64
$test = test-path -path $reg64bWinHttp
if(-not($test))New-Item -Path $reg64bWinHttp
>
New-ItemProperty -Path $reg64bWinHttp -Name $regWinHttpDefault -Value $regWinHttpValue -PropertyType DWORD
New-Item -Path «HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2”
New-Item -Path $regTLS12Client
New-Item -Path $regTLS12Server
New-ItemProperty -Path $regTLS12Client -Name $regTLSDefault -Value $regTLSValue -PropertyType DWORD
New-ItemProperty -Path $regTLS12Client -Name $regTLSEnabled -Value $regTLSEnableValue -PropertyType DWORD
New-ItemProperty -Path $regTLS12Server -Name $regTLSDefault -Value $regTLSValue -PropertyType DWORD
New-ItemProperty -Path $regTLS12Server -Name $regTLSEnabled -Value $regTLSEnableValue -PropertyType DWORD
Осталось включить поддержку TLS 1.2 для приложений .NET Framework. Для этого нужно в реестре включить принудительное использование системных протоколов шифрования для приложений .NET 3.5 и 4.x. Если вы используете старые версии NET Framework 4.5.1 или 4.5.2 на Windows Server 2012 R2/2012 или Windows 8.1, сначала установите последние обновления для .Net Framework 4.5.1 (они добавят поддержку TLS 1.2 в .Net).
Ниже указаны параметры реестра, которые нужно настроить для различных версий .Net:
для .Net 3.5 и 2.0
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727] "SystemDefaultTlsVersions"=dword:00000001 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727] "SystemDefaultTlsVersions"=dword:00000001 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727] "SchUseStrongCrypto"=dword:00000001 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727] "SchUseStrongCrypto"=dword:00000001
[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
[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
Например, без этих параметров вы не сможете подключиться к репозиториям PSGallery из консоли PowerShell на Windows Server 2012 R2 с ошибками:
- Install-Module: Unable to download from URI
- Unable to resolve package source
Проблема тут в в том, что по-умолчанию PowerShell пытается использовать протокол TLS 1.0 для подключения к PSGallery. С апреля 2020 года PowerShell Gallery разрешает подключение к NuGet провайдеру только с помощью TLS 1.2.
Также существует бесплатная утилита IISCrypto, которая позволяет включить/выключить различные протоколы TLS/SSL и настройки Schannel через графический интерфейс (https://www.nartac.com/Products/IISCrypto/). Здесь вы можете выбрать какие версии протоколов TLS хотите настроить. Если все галки напротив протоколов Schannel серые, значит в Windows используются стандартные настройки. В моем примере я включил протокол TLS 1.2 для клиента и сервера с помощью PowerShell скрипта, рассмотренного ранее. Утилита IISCrypto теперь показывает, что протокол TLS 1.2 включен вручную.
IISCrypto не позволяет изменить настройки TLS для .NET и WinHTTP.
В Windows Server 2022 с помощью протокола TLS 1.3 можно включить поддержку HTTP/3 для сайтов IIS.
Предыдущая статья Следующая статья
«Возможно, на сайте используются устаревшие или ненадёжные параметры безопасности протокола TLS»
Подключение к некоторым сайтам может сопровождаться появлением уведомления о том, что используемые на сайте параметры безопасности протокола TLS ненадёжны или устарели. Упомянутый протокол нужен для обеспечения безопасного соединения между пользователем и сервером – передаваемые данные зашифровываются, благодаря чему третьим лицам сложнее получить доступ к ним. Рассмотрим порядок действий по устранению ошибки «Возможно, на сайте используются устаревшие или ненадёжные параметры безопасности протокола TLS».
Подробнее о проблемном протоколе
TLS – особый криптографический протокол защиты, применяемый при передаче данных по сети. Используется во многих программах, задействованных в передаче данных – мессенджеры, браузеры, почтовые клиенты и т. п. Ошибка, которая указывает на недостаточную надёжность этого протокола, обычно возникает потому, что браузер неверно определяет необходимые параметры.
Примерный список причин появления сбоя выглядит следующим образом:
- Антивирус блокирует доступ к ресурсу.
- Используется VPN-расширение для браузера или отдельная соответствующая утилита.
- Вирусная активность делает подключение небезопасным.
- Сайт действительно является небезопасным и имеет проблемы с параметрами TLS – можно так утверждать, если ошибка возникает при подключении исключительно к конкретному сайту.
Как видно, вероятных причин достаточно много, а значит и путей решения проблемы тоже можно выделить несколько. Подробнее об этом – далее.
Исправляем ошибку
В случае, если причина появления проблемы действительно скрывается на стороне сайта, исправить ошибку своими силами не получится. Во всех остальных ситуациях со сбоем можно справиться, приложив некоторые усилия.
Настраиваем антивирус
Для начала рекомендуется убедиться в том, что доступ заблокирован не антивирусом. Проверить настройки антивирусного ПО можно по следующей инструкции:
- Avast – переходим в настройки, находим блок «Активная защита», снимаем галочку с пункта «Сканировать веб-трафик», активируем вариант «Включить сканирование HTTPS».
- Kaspersky – находим кнопку «Не проверять защищённое соединение» в разделе «Сканирование»; при его отсутствии переходим в «Дополнительные настройки» и используем вариант «Установить сертификат».
- Любой другой антивирус – находим пункт, указывающий на сканирование Интернет-соединения, и пробуем отключить его.
Читайте также: Скачать vcomp110.dll для Windows 10
Мнение эксперта
Дарья Ступникова
Специалист по WEB-программированию и компьютерным системам. Редактор PHP/HTML/CSS сайта os-helper.ru.
Если проблема не была решена, функцию сканирования можно вернуть в активное состояние, после чего переходить к другим вариантам действий.
Обновляем «КриптоПро»
Пользователи утилиты «КриптоПро» очень часто жалуются на то, что при попытке перехода на какой-либо сайт браузер выводит уведомление о ненадёжности протокола TLS. Обычно ошибку вызывает именно устаревший выпуск «КриптоПро». Единственное решение – обновить программу для новейшей версии. Загрузить обновлённое приложение можно по этой ссылке .
Меняем настройки браузера
Попробуйте открыть сайт через другой браузер – как бы банально это не прозвучало, но зачастую проблема решается сразу. Если один обозреватель открывает запрашиваемый ресурс без проблем, а второй выдаёт ошибку, нужно:
- Для Internet Explorer – перейти в «Сервис», нажать на «Свойства», кликнуть по «Дополнительно», открыть «Безопасность», переместить переключатель с «SSL» на «TLS».
- Для Opera – перейти в «Инструменты», открыть «Общие настройки», в блоке «Расширенные» найти строку «Протоколы безопасности», деактивировать графу «Anonymous DH/SHA-256».
- Для Mozilla Firefox – та же последовательность, что и для IE.
В Google Chrome и других обозревателях нужной нам настройки нет – придётся либо сменить любимый браузер, либо искать причину в другом.
Используем дополнительные варианты
Предлагаем ещё несколько способов, не нуждающихся в подробном описании:
- Полностью отключить защиту антивируса на определённое время.
- Выполнить очистку файлов «cookie» и удалить данные веб-сайтов в используемом браузере.
- Отключить VPN-приложения.
- Провести глубокую проверку файловой системы антивирусом.
Мы предложили наиболее простые и эффективные методы – вероятнее всего, один из них поможет получить доступ к запрашиваемому ресурсу.
Видеоинструкция
Прикрепляем короткий ролик по разобранному вопросу.
Читайте также: Запуск программы невозможен, так как отсутствует msvcp140.dll
Заключение
В качестве дополнительной меры можно проверить, все ли системные обновления были загружены и установлены. Надеемся, что вам удалось справиться с возникшей проблемой.
Возможно, на сайте используются устаревшие или ненадежные параметры безопасности протокола TLS
При переходе на какой-либо государственный или служебный портал (например, «ЕИС») пользователь может внезапно столкнуться с ошибкой «Не удается безопасно подключиться к этой странице. Возможно, на сайте используются устаревшие или ненадежные параметры безопасности протокола TLS». Данная проблема имеет довольно распространённый характер, и фиксируется на протяжении нескольких лет у различных категорий пользователей. Давайте разберёмся с сутью данной ошибки, и вариантами её решения.
Не удаётся безопасно подключиться к этой странице – суть проблемы
Как известно, безопасность подключения пользователей к сетевым ресурсам обеспечивается за счёт использования SSL/TSL – криптографических протоколов, ответственных за защищённую передачу данных в сети Интернет. Они используют симметричное и ассиметричное шифрование, коды аутентичности сообщений и другие специальные возможности, позволяющие сохранять конфиденциальность вашего подключения, препятствуя расшифровке сессии со стороны третьих лиц.
Если при подключении к какому-либо сайту браузер определяет, что на ресурсе используются некорректные параметры протокола безопасности SSL/TSL, то пользователь получает указанное выше сообщение, а доступ к сайту может быть заблокирован.
Довольно часто ситуация с протоколом TLS возникает на браузере IE – популярном инструменте работы со специальными государственными порталами, связанными с различными формами отчётности. Работа с такими порталами требует обязательного наличия браузера Internet Explorer, и именно на нём рассматриваемая проблема возникает особенно часто.
Причины ошибки «Возможно, на сайте используются устаревшие или ненадежные параметры безопасности протокола TLS» могут быть следующими:
- Антивирус пользователя блокирует корректный доступ к ресурсу;
- У пользователя установлена устаревшая версия криптопровайдера «КриптоПро»;
- Пользователь использует VPN-подключение;
- В браузере IE используются некорректные настройки;
- В БИОСе задействована опция «SecureBoot»;
- Подключению к ресурсу мешает какой-либо вирусный зловред.
Как исправить дисфункцию: Используются ненадёжные параметры безопасности TLS
Решение проблемы «Для параметров безопасности протокола TLS не установлены значения по умолчанию, что также могло стать причиной ошибки» может состоять в способах, описанных ниже. Но перед их описанием рекомендую просто перезагрузить ваш ПК – при всей тривиальности данный способ часто оказывается довольно эффективным.
Если же он не помог, тогда выполните следующее:
- Временно отключите ваш антивирус. В довольно многих случаях антивирус блокировал доступ к ненадёжным (по его оценкам) сайтам. Временно отключите антивирусную программу, или отключите в настройках антивируса проверку сертификатов (например, «Не проверять защищённые соединения» на антивирусе Касперского);
- Установите на ваш компьютер самую свежую версию программы «КриптоПро» (в случае предыдущей работы с данной программы). Устаревшая версия продукта может вызывать ошибку отсутствия безопасного подключения к странице;
- Измените настройки вашего IE. Перейдите в «Свойства браузера», выберите вкладку «Безопасность», далее кликните на «Надежные сайты» (там уже должен быть внесён адрес вашего портала, если нет, тогда внесите). Внизу снимите галочку с опции «включить защищенный режим».
Затем нажмите на кнопку «Сайты» выше, и снимите галочку с опции «Для всех сайтов этой зоны…». Нажмите на «Ок», и попробуйте перейти на проблемный сайт.


Заключение
Причиной ошибки «Возможно, на сайте используются устаревшие или ненадежные параметры безопасности протокола TLS» довольно часто является локальный антивирус ПК, по определённым причинам блокирующий доступ к нужному интернет-порталу. При возникновении проблемной ситуации рекомендуется первым делом отключить ваш антивирус, дабы убедиться, что он не вызывает рассматриваемую проблему. Если же ошибка продолжает повторяться, тогда рекомендую перейти к реализации других советов, описанных ниже, чтобы позволит решить проблему ненадёжных параметров безопасности протокола TSL на вашем ПК.
Настройка протоколов TLS на Windows Server
Написать эту статью подоткнул тот факт, что Windows Server 2016, установленный из коробки, почему-то не имеел TLS протокол, включенный как основный по умолчанию, в то время как SSL3.0 был включен. Приводит это к разным последствиям, как для безопасности, так и для функционирования различных сервисов и приложений.
Проблемы версий протоколов SSL и TLS и совместимости приложений
Для начала рассмотрим проблемы связанные с версиями SSL протоколов:
- SSL v2 небезопасен, устарел и не рекомендуется для использования. См. атаку DROWN по этому протоколу.
- SSL v3 небезопасен и устаревший инструмент. См. атаку POODLE.
- TLS v1.0 также является устаревшим протоколом, но на практике он все же оказывается необходим. Его основная слабость (BEAST) была смягчена в современных браузерах.
- TLS v1.1 и TLS v1.2 оба не имеют известных проблем с безопасностью, но только v1.2 предоставляет современные криптографические алгоритмы.
SSL 2.0, SSL 3.0 и TLS 1.0 настоятельно рекомендуется отключить, так как большинство стандартов безопасности их уже давно не поддерживают (например, PCI DSS 3.1). Рекомендуемые протоколы TLS v1.1 и TLS v1.2 с актуальными алгоритмами шифрование и снятия хэшей.
В более ранних версиях Windows Servers (2008, 2012) SSL v3 все еще включен, т. е. Вам необходимо вручную отключить устаревшие протоколы. Windows Server 2016 и выше уже имеют конфигурацию SSL, которая соответствует действующим регламентам безопасности (например, SSL v2 и SSL v3 отключены).
Но и это оказывается не полной правдой. Дело в том, что использование протоколов зависит не только от системных настроек, но и от того, как написаны приложения. Например, я выяснил, что .NET приложения используют свои собственные настройки безопасности. Также известно, что если включить поддержку TLS 1.2 на SQL Server (например, применив патч https://support.microsoft.com/en-us/help/3135244/tls-1-2-support-for-microsoft-sql-server), установленный на Windows Server 2012, то приложения .NET и JAVA потеряют возможность подключаться к SQL.
Также давно известна проблема с вэб приложениями, написанными на базе интерфейса WinHTTP API. После включения TLS 1.1/1.2 они также перестают подключаться.
Службы IIS и ADFS при этом прекрасно используют новые протоколы, следуя системным настройкам. Более того, к сервисам Azure вы не сможете подключиться через TLS 1.2, но при этом, как выяснилось, Powershell даже в Windows Server 2016 использует SSL3.0 и TLS 1.0, несмотря на то, что согласно системной настройке они отключены.
Как правильно настроить TLS для разного типа приложений?
Начнем с того, что для всего есть свои реестровые ключи, однако нужно точно понимать, какой тип приложения вы хотите настроить, чтобы избежать проблем. Начну с того, что полный список доступных системных ключей в Windows 10/Windows Server 2016/2019 доступен по ссылке https://docs.microsoft.com/ru-ru/windows-server/security/tls/tls-registry-settings. Изменяя их, вы можете настроить IIS, ADFS и прочие службы. Однако, эти ключи не влияют на работу приложений .NET (и в частности, Powershell) и WinHTTP!
В чем же дело? Дело в библиотеках. IIS и ADFS используют Schannel — поставщик поддержки безопасности (SSP), реализующий стандартные протоколы проверки подлинности SSL, TLS и DTLS Internet. Интерфейс поставщика поддержки безопасности (SSPI) является интерфейсом API, используемым системами Windows для выполнения функций, связанных с безопасностью, включая проверку подлинности. В Windows все функции SSPI выполняет библиотека Schannel.dll, в которой реализованы все протоколы и наборы шифрования.
Итак, ветки реестра, которые нас интересуют:
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols — включение и отключение протоколов для Schannel.dll, как клиентских, так и серверных. Для каждого протокола — своя ветка;
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers — здесь можно изменить список и порядок просмотра (это важно!) наборов шифрования;
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\WinHttp — в параметре DefaultSecureProtocols настраиваются протоколы для приложений на WinHttp API;
- HKEY_LOCAL_MACHINE\CurrentControlSet\Control\Cryptography\ECCParameters — настройка эллиптических кривых для криптографии;
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Hashes\MD5 — отключение MD5 шифрования для маркеров безопасности.
Внимание! После его отключения перестает корректно работать Shаrepoint 2010! Он использует MD5 для генерации внутренних идентификаторов безопасности, поэтому не найдя её очень страдает.
Теперь пройдем по конкретным примерам и настройкам.
Отключение SSL и TLS 1.0 протоколов на системном в Schannel подробно описано в документации Microsoft. Отключить небезопасные можно как через реестр, так и с помощью Powershell.
В этой же статье ниже описано, как отключить небезопасные алгоритмы шифрования, такие как RC4.
Отключить небезопасные наборы шифрования (cipher suites) можно через параметр Functions в ключе реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Cryptography\Configuration\Local\SSL\00010002 .
Этот параметр является многострочным текстовым значением, который просто содержит построчный список наборов (один на строку). Удалите ненужные строки.