Разговор, который не состоялся
Перед обменом данными по HTTPS браузер и сервер обязаны договориться о параметрах шифрования: версии протокола, наборе алгоритмов, проверке сертификата. Ошибка ERR_SSL_PROTOCOL_ERROR означает, что эта договорённость сорвалась: сервер прислал что-то, что клиент не смог принять за правильный ответ, либо не прислал ничего осмысленного.
В названии кода упоминается SSL, хотя современные соединения используют TLS. Это исторический термин, который сохранился в интерфейсе, поэтому не стоит удивляться, если речь идёт вовсе не о старом протоколе.
Кто чаще всего мешает
На стороне пользователя наиболее частые виновники — неверные дата и время на устройстве, антивирус с функцией проверки защищённого трафика, а также устаревшие или повреждённые настройки браузера. К ним добавляются расширения, вмешивающиеся в запросы, и прокси.
На стороне сервера причины другие: неправильно настроенный веб-сервер, обрыв в цепочке сертификатов, порт, который слушает обычный HTTP, но к нему пытаются подключиться по защищённому протоколу. Иногда сбой возникает из-за нестабильной работы протокола QUIC, о котором подробнее в отдельной статье.
Отдельно стоит проверить, не подставляется ли в адрес порт, который отдаёт обычную страницу, а не защищённую. Такая путаница возникает при ручном вводе адреса и в неправильно настроенных ссылках, и браузер в ответ выдаёт именно эту ошибку.
Проверка по шагам: ERR_SSL_PROTOCOL_ERROR
Первым делом сверьте дату и время на компьютере или телефоне. Если они сильно отличаются от реальных, сертификаты воспринимаются как недействительные, а соединение срывается. Затем откройте адрес в другом браузере и на другом устройстве.
Если страница открывается в одном браузере, но не в другом, дело в настройках или расширениях последнего. Если проблема на всех устройствах вашей сети, а с мобильной сети всё открывается, подозревайте роутер или оборудование провайдера. Если страница не открывается нигде, вероятнее всего, ошибка на стороне самого сайта.
Полезно проверить и адрес с другим протоколом: попробуйте открыть версию сайта без шифрования, если она существует. Если обычная страница открывается, а защищённая нет, проблема в настройке шифрования, а сам сервер работает и доступен по сети.
Что исправить на своей стороне
Очистите кэш и файлы cookie за всё время. Отключите расширения и проверьте страницу в режиме инкогнито. В параметрах Windows найдите пункт очистки состояния SSL в свойствах браузера и выполните его: это сбросит закэшированные данные о защищённых сессиях.
Отключите на короткое время проверку HTTPS в антивирусе. Если после этого сайт открылся, оставьте проверку выключенной только для этого адреса или обновите антивирус: старые версии плохо поддерживают современные шифры. Попробуйте также отключить экспериментальный протокол QUIC в настройках браузера.
Особенности разных устройств
На смартфонах ошибка нередко связана с автоматической синхронизацией времени, которая была отключена, либо с приложениями, использующими собственные сертификаты для фильтрации трафика. Если у вас включена подобная защита или родительский контроль, проверьте их параметры.
На старых операционных системах нет поддержки современных версий TLS. Такое устройство просто не способно поговорить с новыми серверами, и решением становится обновление системы или браузера, если оно доступно. Проверить актуальность можно в разделе сведений о программе.
Если вы используете устройство на работе или в учебном заведении, сетевой шлюз может подменять сертификаты для фильтрации. При его сбое соединения обрываются на этапе согласования, и администратору стоит проверить работу такой системы.
Когда исправлять надо на сервере
Владельцу сайта стоит проверить конфигурацию веб-сервера: правильно ли указаны сертификат и ключ, включены ли поддерживаемые версии протокола, слушает ли порт 443 именно защищённые соединения. Полезно посмотреть, как сайт открывается в разных браузерах и не подменяет ли ответы промежуточный кэширующий слой. Пока ошибка на стороне сервера, посетители ничего исправить не смогут.
Хорошая практика для владельцев — проверять сайт после каждой смены сертификата или конфигурации и следить за журналом ошибок рукопожатия: рост числа неудач заметен там раньше, чем приходят жалобы.