Не удаётся установить защищённое соединение. ERR_SSL_PROTOCOL_ERROR
#Что означает ошибка
Это общий код: Chrome начал установку защищённого соединения, но ответ сервера не похож на корректный TLS (ошибка протокола). Чаще всего причина на стороне сервера: на порту 443 работает обычный HTTP без SSL, не загружен сертификат, неверный виртуальный хост по умолчанию, неправильные настройки прокси или балансировщика. На стороне клиента причиной бывают неверное время, перехват HTTPS антивирусом, прокси и сбои QUIC.
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| На порту 443 нет SSLНет параметра ssl или не загружен сертификат. | openssl выдаёт wrong version number. | Исправьте listen и перезагрузите nginx. |
| Виртуальный хост по умолчанию без SSLЗапрос без нужного SNI попадает не туда. | Ошибка для некоторых доменов. | Настройте default_server с сертификатом. |
| Перехват CDN или проксиНеверный режим SSL в Cloudflare. | Ошибка только через CDN. | Включите Full (strict). |
| Просрочен или не загружен сертификатСервис не перезапущен после продления. | Ошибка после продления сертификата. | Перезагрузите веб-сервер. |
| Файрвол или балансировщикПропускает порт, но не TLS. | Ошибка из определённых сетей. | Проверьте правила на оборудовании. |
#Для посетителя
- Проверьте дату и времяОткройте «Параметры» → «Время и язык» → «Дата и время». Включите автоматическую установку времени и проверьте часовой пояс; затем нажмите «Синхронизировать» (если кнопка есть). Повторите действие, вызвавшее ошибку.
- Откройте сайт в другом браузере и сетиСкопируйте точный адрес проблемной страницы, откройте его в другом установленном браузере и сравните результат. Если ошибка повторяется, проверьте эту же страницу на телефоне через мобильные данные: одинаковый сбой указывает на сайт или сервер, а не на расширение одного браузера. Если другой браузер работает, исследуйте настройки, профиль и дополнения исходного. Не обходите предупреждения HTTPS ради сравнения.
- Отключите QUIC в ChromeЭтот тест применяйте только если HTTPS-проблема воспроизводится в Chrome и есть основания подозревать QUIC/HTTP/3. Откройте
chrome://flags/#enable-quic, запишите исходное значение, выберите Disabled для Experimental QUIC Protocol, нажмите «Перезапустить» и повторите тот же сайт. После проверки восстановите исходное значение: экспериментальные флаги могут исчезать или менять смысл между версиями браузера. Ошибку сертификата отключение QUIC не исправляет. - Очистите SSL-состояниеТолько на Windows, если используется системный кеш TLS: нажмите
Win+R, введитеinetcpl.cpl, нажмите Enter → вкладка «Содержимое» → «Очистить состояние SSL», если кнопка доступна. Затем полностью закройте браузер, откройте снова и проверьте сайт. Это не исправляет просроченный сертификат на сервере; при сохраняющемся предупреждении не обходите его и обратитесь к владельцу сайта. - Проверьте журнал защитного ПООткройте «Пуск → Безопасность Windows → Защита от вирусов и угроз → Журнал защиты» и сопоставьте время блокировки со временем сетевой ошибки. Если событий нет, проверяйте DNS, прокси, сертификат или сеть по другим шагам. Не отключайте защитные средства ради теста: это не доказывает причину сетевой ошибки.
- Отключите расширенияОткройте адрес
chrome://extensionsв браузере. Временно выключите расширения, обновите проблемную страницу и проверьте результат. Если ошибка исчезла, включайте расширения по одному, чтобы найти конфликт. Не удаляйте расширения, пока не убедились, что они не нужны. - Сбросьте сетьЗапустите «Командную строку» от имени администратора через поиск в меню «Пуск». Для очистки кэша DNS выполните
ipconfig /flushdns. Если статья предлагаетnetsh winsock reset, сохраните открытые сетевые сеансы: после выполнения понадобится перезагрузка; VPN и некоторые сетевые программы могут потребовать повторной настройки. - Команды для отдельных ситуацийВыберите только подходящий вариант. Это не одна последовательность: часть команд диагностирует проблему, а часть меняет настройки или данные.
#Для владельца сайта
Типичная ошибка — директива listen 443; без параметра ssl: тогда nginx принимает обычный HTTP на порту 443, а браузер ждёт TLS.
server {
listen 443 ssl;
listen [::]:443 ssl;
http2 on;
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
}openssl s_client -connect example.com:443 -servername example.com </dev/nullsudo nginx -tsudo ss -ltnp | grep :443#Как отличить причину на стороне клиента от серверной
Откройте тот же адрес на телефоне через мобильный интернет и в другом браузере. Если ошибка видна везде, виноват сервер или его CDN, и посетитель ничего не исправит: стоит дождаться владельца сайта или сообщить ему текст ошибки. Если сайт открывается на телефоне, но не на вашем компьютере, ищите причину локально: время, антивирус с проверкой HTTPS, прокси, VPN, QUIC. Для точной проверки откройте chrome://net-export/, включите запись, воспроизведите ошибку и остановите запись: в файле журнала будет строка с кодом сбоя рукопожатия, а при обращении к владельцу сайта его можно приложить.
Ещё один признак серверной проблемы: сайт открывается по http://, а по https:// нет. Тогда на порту 443 нет рабочего TLS, и исправлять нужно настройки сервера. Владельцу также стоит проверить домен в Qualys SSL Labs: отчёт покажет, отвечает ли сервер на 443, какие протоколы включены и корректна ли цепочка сертификатов.