У меня почему-то перестали открываться некоторые HTTPS сайты (не все!). При попытке открыть такой сайт в браузере появляется окно с ошибкой «Этот сайт не может обеспечить безопасное соединение». Сайты не отображаются как в Google Chrome, так и в Opera, Яндекс Браузере и Microsoft Edge. Без HTTPS некоторые сайты открываются, но не все, только те, у которых страницы доступны и по протоколу HTTPS и по протоколу HTTP. В Google Chrome ошибка при открытии HTTPS сайт выглядит так:
Этот сайт не может обеспечить безопасное соединение._x000D_Сайт sitename.ru отправил недействительный ответ._x000D_ERR_SSL_PROTOCOL_ERROR.
И так:
Этот сайт не может обеспечить безопасное соединение._x000D_На сайте sitename.ru используется неподдерживаемый протокол._x000D_ERR_SSL_VERSION_OR_CIPHER_MISMATCH.
Клиент и сервер поддерживают разные версии протокола SSL и набора шифров. Скорее всего, сервер использует шифр RC4, который считается небезопасный.» [/alert]
Или в Mozilla Firefox :
Secure Connection Failed
В Opera и Яндекс Браузере ошибки выглядит примерно также.
Как мне открыть такие сайты?
Ответ
Как вы уже вероятно поняли, проблема связана с проблемами при SSL взаимодействии между вашим компьютеров и HTTPS сайтом. Причины такой ошибки могут быть довольно разные. В этой статье я попробовал собрать все методы исправления ошибки «Этот сайт не может обеспечить безопасное соединение» (This site can’t provide a secure connection, ERR_SSL_PROTOCOL_ERROR) в различных браузерах.
- Очистите в брайзере кэш и куки, сбросьте SSL кэш
- Отключите сторонние расширения в браузере
- Проверьте настройки антивируса и файрвола
- Проверьте настройки даты и времени
- Обновите корневые сертификаты Windows
- Отключите поддержку протокола QUIC
- Проверьте версии протоколов TLS, поддерживаемых вашим браузером и сайтом
- Включите поддержку старых версий протоколов TLS и SSL
Сразу хочется отметить, что несмотря на то, что браузеры Google Chrome, Opera, Яндекс Браузер и Edge выпускаются разными компаниями, на самом деле все эти браузеры основаны на одном и том же движке — WebKit ( Chromium ) и проблема с ошибками при открытии HTTPS сайтов в них решается одинаково.
В первую очередь нужно убедиться, что проблема не на стороне самого HTTPS сайта. Попробуйте открыть его с других устройств (телефон, планшет, домашний/рабочий компьютер и т.д.). Также проверьте, открывается ли в других браузерах, например, IE/Edge или Mozilla Firefox. В Firefox похожая ошибка обсуждалась в статье Ошибка при установлении защищённого соединения в Mozilla Firefox .
Очистите в брайзере кэш и куки, сбросьте SSL кэш
Кэш и куки браузера могут быть частой причиной возникновения ошибок с SSL сертификатами. Рекомендуем сначала очистить в браузере кэш и куки. В Chrome нужно нажать сочетание клавиш Ctrl + Shift + Delete , выберите промежуток времени ( Все время ) и нажмите кнопку очистки данных ( Удалить данные / Clear Data).
Чтобы очистить SSL кэш в Windows:
- Перейдите в раздел Панель управления -> Свойства браузера ;
- Щелкните по вкладке Содержание ;
- Нажмите на кнопку Очистить SSL ( Clear SSL State );
- Должно появится сообщение “SSL-кэш успешно очищен”;
- Осталось перезапустить браузер и проверить, осталась ли ошибка ERR_SSL_PROTOCOL_ERROR.
Отключите сторонние расширения в браузере
Рекомендуем отключить (удалить) сторонние расширения браузера, особенно всякие анонимайзеры, прокси, VPN, расширения антивируса и другие подобные Addon-ы, которые могут вмешиваться в прохождение трафика до целевого сайта. Посмотреть список включенных расширения в Chrome можно, перейдя в Настройки -> Дополнительные инструменты -> Расширения , или перейдя на страницу chrome://extensions/
. Отключите все подозрительные расширения.
Проверьте настройки антивируса и файрвола
Если на вашем компьютере установлены антивирусная программа или межсетевой экран (часто он встроен в антивирус), возможно доступ к сайту блокируется именно ими. Чтобы понять, ограничивают ли доступ к сайту антивирусы или файрволы, попробуйте на время приостановить их работу.
Во многих современных антивирусах по-умолчанию присутствует модуль проверки SST/TLS сертификатов сайтов. Если антивирус обнаружит, что сайт использует недостаточно защищенный (или самоподписанный ) сертификат или устаревшую версию протокола SSL (тот же SSL 3.0 или TLS 1.0 ), доступ к пользователя к такому сайту может быть ограничен. Попробуйте отключить сканирование HTTP/HTTPS трафика и SSL сертификатов. В различных антивирусах эта опция может называть по-разному. Например:
- В Dr.Web блокировать доступ к сайтам может встроенный сетевой экран (SpIDer Gate);
- В ESET NOD32 нужно отключить опцию «Включить фильтрацию протокола SSL/TLS»;
- В Avast опция называется «Включить сканирование HTTPs» (находится в разделе Настройки -> Активная защита -> Веб экран -> Настройки -> Основные настройки).
- В Kaspersky Internet Security нужно перейти в Настройки -> Дополнительно -> Сеть -> добавьте сайт в исключения или выберите опцию Не проверять защищенные соединения .
Проверьте настройки даты и времени
Неправильная дата и время (и часового пояса ) на компьютере также может быть причиной ошибки при установке защищенного соединения с HTTPS сайтами. Ведь при выполнении аутентификации система проверяет срок создания и дату истечения сертификата сайта и вышестоящего центра сертификации.
Проверьте что у вас установлено правильно время и часовой пояс. Если время постоянно сбивается – смотри статью “ Сбивается время на компьютере при выключении: что делать? ”.
Обновите корневые сертификаты Windows
Если ваш компьютер находится в изолированном сегменте, давно не обновлялся или на нем совсем отключена служба автоматического обновления, на вашем компьютере могут отсутствовать новые корневые доверенные сертификаты (TrustedRootCA). Рекомендуем выполнить обновление системы: установить последние обновления безопасности и обновления часовых поясов.
Вы можете вручную обновить корневые сертификаты по статье: Как вручную обновить корневые сертификаты в Windows (так же рекомендуем проверить хранилище сертификатов на предмет недоверенных сертификатов , это позволит предотвратить перехват вашего HTTPs трафика и ряд других проблем).
Отключите поддержку протокола QUIC
Проверьте, не включена ли в Chrome поддержка протокола QUIC (Quick UDP Internet Connections). Протокол QUIC позволяет гораздо быстрее открыть соединение и согласовать все параметры TLS (HTTPs) при подключении к сайту. Однако в некоторых случая он может вызывать проблемы с SSL подключениями. Попробуйте отключить QUIC:
- Перейдите на страницу: chrome://flags/#enable-quic ;
- Найдите опцию Experimental QUIC protocol ;
- Измените значение опции Default на Disabled ;
- Перезапустите Chrome.
Проверьте версии протоколов TLS, поддерживаемых вашим браузером и сайтом
Проверьте, какие версии протоколов TLS/SSL и методы шифрования (Cipher Suite ) поддерживаются вашим браузером. Для этого просто откройте веб страницу https://clienttest.ssllabs.com:8443/ssltest/viewMyClient.html
Онлайн сервис SSL Labs вернет список протоколов и методов шифрования, которые поддерживает ваш блаузер. Например, в моем примере Chrome поддерживает TLS 1.3 и TLS 1.2. Все остальные протоколы (TLS 1.1, TLS 1.0, SSL3 и SSL 2) отключены.
Чуть ниже указан список поддерживаемых методов шифрования.
Cipher Suites (in order of preference)
- TLS_AES_128_GCM_SHA256
- TLS_CHACHA20_POLY1305_SHA256
- TLS_AES_256_GCM_SHA384
- TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
- TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256
- TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
- TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
- TLS_RSA_WITH_AES_128_GCM_SHA256
- TLS_RSA_WITH_AES_256_GCM_SHA384
- TLS_RSA_WITH_AES_128_CBC_SHA
- TLS_RSA_WITH_AES_256_CBC_SHA
Get-TlsCipherSuite | Format-Table -Property CipherSuite, Name
Затем проверьте список протоколов TLS/SSL, которые поддерживает ваш сайт. Для этого воспользуйтесь онлайн сервисом проверки SSL https://www.ssllabs.com/ssltest/analyze.html?d=domain.ru
(замените domain.ru
на адрес сайта, который вы хотите проверить).
Проверьте, все ли версии TLS/SSL поддерживаемые сайтом доступны в вашем браузере.
В этом примере видно, что сайт не поддерживает TLS 3.1 и SSL3/2. Аналогично сравните список Cipher Suite.
Если метод шифрования не поддерживается вашим браузером, возможно нужно включить его в Windows.
Если сайт не поддерживает SSL протоколы, которые требует использовать клиент, то при подключении вы увидите ошибку “ Этот сайт не может обеспечить безопасное соединение”.
Включите поддержку старых версий протоколов TLS и SSL
И самый последний пункт. Cкорее всего для решения проблемы вам достаточно будет включить поддержку старых версий протоколов TLS и SSL. В большинстве случае он окажется самым эффективным, но я намеренно перенес его в конец статьи. Объясню почему.
Старые версии протоколов TLS и SSL отключены не по простой прихоти разработчиков, а в связи с наличием большого количества уязвимостей, которые позволяют злоумышленникам перехватить ваши данные в HTTPS трафике и даже видоизменить их. Бездумное включение старых протоколов существенно снижает вашу безопасность в Интернете, поэтому к этому способу нужно прибегать в последнюю очередь, если все другое точно не помогло.
Современные браузеры и ОС уже давно отказались от поддержки устаревших и уязвимых протоколов SSL/TLS (SSL 2.0, SSL 3.0 и TLS 1.1). Стандартном сейчас считаются TLS 1.2 и TLS 1.3
Если на стороне сайта используется более старая версия протокола SSL/TLS, чем поддерживается клиентом/браузером, пользователь видит ошибку установки безопасного подключения ERR_SSL_VERSION_OR_CIPHER_MISMATCH. Такая ошибка появляется, если клиент на этапе TLS Handshake обнаружил, что на сайте используется протокол шифрования или длина ключа, которая не поддерживается вашим браузером. Выше мы показали, как определить набор протоколов и шифров, поддерживаемых сервером.
Чтобы разрешить использовать старые версии протоколов SSL/TLS в Windows (еще раз отмечаю – это небезопасно!):
- Откройте Панель Управления -> Свойства браузера ;
- Перейдите на вкладку Дополнительно ;
- Включите опции TLS 1.0, TLS 1.1 и TLS 1.2 (если не помогло, включите также SSL 3.0,2.0).
- Перезапустите браузер.
Если все рассмотренные способы не помогли избавиться от ошибки «Этот сайт не может обеспечить безопасное соединение» также попробуйте:
- Проверить, что в файле C:WindowsSystem32driversetchosts отсутствуют статические записи. Файл hosts может использоваться в Windows в том числе для блокировки доступа к сайтам . Выведите содержимое файла hosts с помощью PowerShell:
Get-Content $env:SystemRootSystem32Driversetchosts
- Попробуйте использовать публичные DNS сервера, например – DNS сервер Google. В настройках сетевого подключения в качестве предпочитаемого DNS сервера укажите IP адрес 8.8.8.8 ;
- В Панели управления -> свойства браузера, убедитесь, что для зоны Интернет выбрана уровень безопасности Выше среднего или Средний . Если выбрана зона Высокий , некоторые SSL подключения могут блокироваться браузером.
- Возможно проблема связана с сертификатом сайта. Проверьте его с помощью онлайн утилит SSL Checker;
- Если на компьютере используется VPN или задан прокси сервер в Windows , попробуйте отключите их;
- В тестовых целях, если вам нужно быстро просмотреть содержимое сайта, можно отключить ошибки проверки SSL сертификатов в Chrome. Для этого нужно запустить его с параметром —ignore-certificate-errors :
"C:Program Files (x86)GoogleChromeApplicationchrome.exe" --ignore-certificate-errors
(не работайте в таком режиме постоянно и не отправляйте конфиденциальные данные пароли/кредитки в такой сессии); - В Chrome проверьте, включен ли протокол TLS 1.3. В адресной строке перейдите в раздел настроек chrome://flags , С помощью поиска найдите параметр TLS 1.3 . Убедитесь, что он включен ( Enabled ) или находится в состоянии Default . Если отключен – его нужно включить;
- Если у вас используется одна из старых версий ОС (Windows XP или Windows 7), установите вместо Chrome браузер Mozilla Firefox. В отличии от движков на базе Chromium, Mozilla не использует собственные модули реализации протоколов шифрования SSL/TLS, а не встроенные в Windows.
- Проверить, что в файле C:WindowsSystem32driversetchosts отсутствуют статические записи. Файл hosts может использоваться в Windows в том числе для блокировки доступа к сайтам . Выведите содержимое файла hosts с помощью PowerShell: