← Все статьи

SiteGuard13 мин чтения

ERR_SSL_PROTOCOL_ERROR: как восстановить защищённое соединение

ERR_SSL_PROTOCOL_ERROR означает, что при обмене по SSL/TLS возникла протокольная ошибка и браузер не смог нормально открыть HTTPS-страницу. Причиной бывает неправильный порт, несогласованная настройка прокси, несовместимость параметров TLS или вмешательство сетевого посредника. Сам код не доказывает, что сертификат просрочен: для проверки срока и доверия существуют отдельные сообщения.

Посетителю полезно сохранить точный адрес и сравнить результат в другом актуальном браузере и другой сети. Владельцу сайта нужно определить, какой узел принимает HTTPS, и проверить именно его конфигурацию. Ниже — порядок действий для Chrome, Яндекс Браузера и других клиентов, позволяющий перейти от общей надписи к проверяемой причине.

Что означает ERR_SSL_PROTOCOL_ERROR

HTTPS использует TLS для защищённого обмена. В начале соединения клиент и сервер согласуют параметры, выполняют необходимые проверки и устанавливают защиту данных. Название SSL сохранилось в интерфейсах и кодах ошибок, хотя при настройке современного сайта обычно обсуждают TLS.

В списке ошибок Chromium SSL_PROTOCOL_ERROR имеет номер −107 и обозначает ошибку SSL-протокола. Это сообщение сетевого стека браузера. Оно не является HTTP-статусом вроде 404 или 500 и не сообщает конкретную неисправную настройку. Ошибка возможна при установлении защищённого соединения и при дальнейшем протокольном обмене.

Сообщение или наблюдениеОсновное направление проверки
ERR_SSL_PROTOCOL_ERRORФактический протокол на порту, настройки TLS и участвующие посредники
ERR_SSL_VERSION_OR_CIPHER_MISMATCHСовместимость TLS-параметров и готовность HTTPS для конкретного имени
ERR_CERT_DATE_INVALID, ERR_CERT_AUTHORITY_INVALID и похожие кодыПроверка сертификата: срок, имя, доверенная цепочка
ERR_CONNECTION_REFUSED или ERR_CONNECTION_TIMED_OUTВозможность установить соединение с нужным адресом
Получен HTTP-ответ 502, 525 или другой кодКомпонент, сформировавший ответ, и участок за ним

Сначала перепишите код полностью. Надпись «Не удаётся установить безопасное соединение» может сопровождать разные ошибки. Когда причина относится к проверке сертификата, нужно исследовать соответствующее сообщение; когда не согласуется протокол, важнее устройство подключения и конфигурация принимающего узла. Замена сертификата без такого различия может ничего не изменить.

Как исправить ERR_SSL_PROTOCOL_ERROR посетителю

Проверьте адрес, порт и момент появления ошибки

Убедитесь, что открываете официальный домен и правильный поддомен. Если в адресе указан нестандартный порт, сверьте его с инструкцией сервиса. Порт, на котором работает административная панель или тестовое приложение, не обязательно поддерживает HTTPS. Ошибка в старой закладке может привести к подключению к другой службе.

Запишите, появляется ли проблема сразу при открытии сайта или после перехода на отдельный адрес. Если основной домен работает, а кабинет на другом поддомене — нет, это полезная граница расследования. Не заменяйте HTTPS на HTTP для входа и оплаты: такое изменение не исправляет защищённое подключение.

Сравните актуальные браузеры и устройства

Откройте тот же адрес в другом обновлённом браузере. При различии результатов проверьте отдельный профиль или приватное окно исходного браузера. Этот тест помогает обнаружить влияние расширений и настроек профиля, но системный прокси и сетевой фильтр могут продолжать действовать в обоих случаях.

Если ошибка возникла после установки конкретного расширения, проверьте его влияние отдельно. Обновите браузер штатным способом, особенно если версия давно не менялась. Успех второго браузера не гарантирует исправность всей серверной конфигурации: клиенты могут отличаться поддерживаемыми параметрами, выбранным адресом и маршрутом подключения.

Сравните сети, особенно на телефоне

Для публичной страницы сравните Wi-Fi и мобильный интернет, если оба подключения доступны и разрешены. На телефоне дополнительно откройте ссылку в обычном браузере, когда ошибка появилась во встроенном окне приложения. Сохраняйте один и тот же адрес: сравнение разных поддоменов не позволяет отделить влияние сети.

Если проблема остаётся только в рабочей сети, сообщите администратору о возможной связи с прокси или проверкой HTTPS-трафика. Посмотрите, не изменялся ли недавно используемый VPN или сетевой клиент. На корпоративном устройстве не удаляйте обязательные профили и сертификаты. Исправление совместимости такого компонента выполняют через его настройки и обновления.

Выберите следующий шаг по наблюдению

При ошибке на разных устройствах и в независимых сетях передайте сведения владельцу сайта. Если сбой воспроизводится только на одном устройстве, сначала сравните его версию системы и сетевое ПО с работающим устройством. В общественном Wi-Fi проверьте, завершён ли предусмотренный сетью вход через официальный портал.

Массовая очистка cookies, переустановка браузера и сброс сети не объясняют протокольный сбой. Выполняйте точечное действие, когда сравнение указывает на соответствующий компонент. Дату и время проверяют при относящемся к ним сообщении о сертификате; изменять часы ради обхода ошибки TLS не следует.

Что проверить владельцу сайта: от порта до виртуального сервера

Начните с фактической схемы подключения. Куда ведёт домен: на веб-сервер, балансировщик или CDN? Где завершается TLS? Какой протокол используется на следующем участке? Эти вопросы важнее изменения списка шифров на первой найденной машине: посетитель может вообще не устанавливать с ней прямое TLS-соединение.

1. Убедитесь, что на нужном порту действительно работает TLS

Наличие открытого порта 443 подтверждает только возможность обращения к нему. На этом порту должна работать служба, понимающая ожидаемый протокол. После переноса контейнера или изменения балансировщика порт иногда направляют на обычный HTTP-обработчик. Тогда клиент отправляет TLS-данные и получает неожиданный ответ либо разрыв.

Сверьте публикацию портов, конфигурацию слушателя и назначение выбранного сервиса. В документации Nginx HTTPS на слушающем сокете включается параметром ssl, а сертификат и ключ задаются отдельно. Само число 443 не включает шифрование. Готовый пример конфигурации нужно сопоставить с вашей версией и схемой размещения.

Сообщение OpenSSL wrong version number тоже не всегда означает устаревшую версию TLS. Возможен ответ другого протокола. Например, документация GitLab описывает такую ошибку при попытке HTTPS-соединения с сервером, который обслуживает HTTP. Это направление проверки, а не универсальный диагноз по одной строке журнала.

2. Разделите внешнее HTTPS и внутреннее подключение

Если TLS завершается на балансировщике, дальше к приложению может идти отдельное соединение с предусмотренным архитектурой протоколом. Если балансировщик передаёт TLS-трафик без расшифровки, принимать его должен TLS-сервис. Ошибка возникает, когда эти две схемы смешивают: один компонент ожидает открытый HTTP, другой отправляет зашифрованные данные.

При работе через CDN рассматривайте участки «браузер — CDN» и «CDN — origin» отдельно. Cloudflare описывает для них отдельные сертификаты и параметры. Исправный сертификат на исходном сервере ещё не подтверждает готовность публичного HTTPS. Успешное подключение к CDN, в свою очередь, не проверяет скрытый участок до приложения.

Если браузер показывает HTTP-страницу с ошибкой посредника, сохраните этот статус. Такая страница означает другой наблюдаемый результат, чем собственный ERR_SSL_PROTOCOL_ERROR браузера. Проверять нужно участок, обозначенный посредником, с учётом его журналов и документации.

3. Проверьте имя сайта и выбор виртуального хоста

Один IP-адрес может обслуживать несколько HTTPS-сайтов. Расширение SNI передаёт имя при TLS-согласовании и помогает выбрать подходящую конфигурацию. Поэтому запрос непосредственно к IP-адресу и запрос к домену могут давать разные результаты. Они не являются взаимозаменяемыми проверками.

Проверьте, что проблемное имя добавлено на нужной точке входа, а правила выбора виртуального сервера соответствуют ожидаемой схеме. Сравнивайте успешный и неуспешный поддомены на одном узле. Отдельно учитывайте конфигурацию по умолчанию и намеренный отказ при неизвестном имени: такой отказ не требует переустановки браузера посетителя.

4. Сопоставьте ошибку с изменением конфигурации

Проверьте последние изменения слушателей, TLS-политик, библиотек и маршрутов к приложению. Запишите время развёртывания и сравните его со временем жалоб. Совпадение — основание проверить гипотезу, но для вывода полезно найти конкретное различие между рабочей и текущей конфигурациями.

Перед применением исправления выполните штатную проверку конфигурации. Убедитесь, что служба приняла новую версию, а запросы не продолжают поступать на старый узел. Если домен использует несколько IPv4- или IPv6-адресов, сравните их настройку: неодинаковая публикация HTTPS может создавать сбой только у части посетителей.

Журнал приложения может оставаться пустым, если обмен прервался до обработки HTTP. Тогда нужны события TLS на принимающем прокси, балансировщике или веб-сервере. При анализе учитывайте часовые пояса, конкретный адрес назначения и имя сайта. Запись об ошибке без этих деталей легко связать с чужим обращением.

5. Исследуйте сбой, который зависит от сети или протокола

Если ошибка появляется нерегулярно, сохраните результат первой неудачной попытки. Последующее обновление страницы может пройти при других условиях, поэтому удачный повтор сам по себе не объясняет причину. Соберите несколько эпизодов с временем, браузером, сетью и фактическим адресом назначения. Затем сравните их с успешными обращениями в близкий период.

В руководстве Cloudflare по протокольным ошибкам отдельно рассматривается совместимость HTTP/3 и TLS 1.3 с сетевыми посредниками. HTTP/3 работает через QUIC поверх UDP; обычная TCP-проверка не проверяет этот путь. Поэтому успешный диагностический запуск OpenSSL из следующего раздела не подтверждает работу всех вариантов подключения браузера.

Администратору полезно выяснить, какой протокол использовала неудачная попытка и проходит ли тот же сценарий при контролируемом сравнении. Такое сравнение планируют с конкретной гипотезой, фиксируют его условия и возвращают штатную конфигурацию после проверки. Произвольное переключение экспериментальных настроек во всех браузерах посетителей не даёт воспроизводимой картины.

Для корпоративной сети проверьте версию и события устройства, которое инспектирует HTTPS. Обновление несовместимого компонента может решить проблему без изменения политики всего публичного сайта. Если после изменения результат улучшился, повторите проверку в исходных условиях и убедитесь, что сохранены необходимые проверки сертификатов. Совпадение одной успешной загрузки с переключением настройки ещё не показывает, какой механизм вы исправили.

Что делать при ERR_SSL_VERSION_OR_CIPHER_MISMATCH

В Chromium этому коду соответствует номер −113: клиент и сервер не согласовали общую версию SSL/TLS либо набор шифров. На практике сначала определите, какой HTTPS-узел участвовал в попытке, и изучите его события. Бесконечно расширять список разрешённых алгоритмов по одному названию ошибки не нужно.

Для публичного сайта используйте актуальные рекомендации платформы по совместимой конфигурации TLS. RFC 9325 рассматривает TLS 1.2 и TLS 1.3 и исключает использование устаревших SSLv2, SSLv3, TLS 1.0 и TLS 1.1. При этом поддержку конкретных клиентов проверяют отдельно. Восстанавливать доступ включением старых протоколов или слабых шифров — плохое исправление несовместимости.

Для Cloudflare есть дополнительная проверка. В официальном разборе CIPHER_MISMATCH указаны ситуации с неактивным сертификатом на внешней точке CDN и отсутствием покрытия нужного имени. Проверьте состояние edge-сертификата и конкретный hostname. Базовое покрытие Universal SSL обычно включает корневой домен и один уровень поддоменов; более глубокое имя требует подходящего покрытия.

Если проблема появилась только у старого клиента, уточните его систему и TLS-библиотеку. Если страдают устройства в одной организации, исследуйте совместимость сетевого посредника. Исправление должно устранить подтверждённое несоответствие. Изменение TLS-политики всего сайта затрагивает всех посетителей, поэтому результат проверяют на предусмотренном наборе клиентов.

Как проверить HTTPS через curl и OpenSSL

Команды ниже предназначены для диагностики своего сервиса или согласованной проверки. Замените example.com своим доменом. Выполняйте единичные обращения к обычной странице без операций оплаты и изменения данных. Сохраняйте время, версию инструмента и адрес назначения: это делает результат пригодным для сравнения.

curl: проверить запрос с обычной проверкой сертификата

curl --verbose --connect-timeout 10 --max-time 20 https://example.com/

В Windows для установленной утилиты можно использовать curl.exe. Подробный вывод показывает ход подключения и доступные сведения о TLS. Значения 10 и 20 секунд — ограничения данного диагностического запуска. Успешное получение HTTP-ответа подтверждает результат этой попытки, но не поведение каждого браузера.

curl проверяет сертификат по умолчанию. Не добавляйте -k: это уберёт часть проверки HTTPS и может скрыть другую проблему. Если curl и браузер расходятся, сравните прокси, адрес назначения, версии TLS и доверенные хранилища. Они могут различаться в зависимости от сборки и платформы.

OpenSSL: посмотреть согласование с нужным именем

openssl s_client -connect example.com:443 -servername example.com -verify_hostname example.com -verify_return_error -brief

Параметр -servername задаёт SNI, -verify_hostname — проверяемое имя, а -verify_return_error требует прервать проверку при ошибке сертификата. Это различие описано в документации s_client: диагностическая утилита без соответствующего режима может продолжать обмен после ошибки проверки. Одной строки CONNECTED недостаточно для вывода об исправном HTTPS.

Смотрите, завершилось ли согласование, какая версия и шифр выбраны и успешна ли проверка сертификата. Хранилище доверия OpenSSL зависит от установки; оно не обязательно совпадает с браузерным. После получения результата завершите интерактивный запуск. Если проверка зависла, остановите её и сохраните последний завершённый этап.

Как трактовать результаты

Если TLS согласуется, а затем возвращается HTTP-ошибка, переходите к разбору полученного ответа. Если данные не похожи на ожидаемый протокол, проверьте порт и схему проксирования. Если согласование прекращено предупреждением TLS, сопоставьте его с журналом принимающей стороны. Если не прошла проверка сертификата, разберите указанную причину отдельно.

Различие результатов двух инструментов полезнее рассматривать как новый вопрос: что изменилось в условиях? Не объявляйте браузер сломанным только потому, что один терминальный запрос завершился успешно. Для редких сбоев администратору могут понадобиться короткие согласованные записи сетевого обмена с обеих сторон.

Пример: после переноса порт 443 ведёт на HTTP

Представим, что после переноса контейнера посетители получают ERR_SSL_PROTOCOL_ERROR, хотя новый сервер запущен. Проверка порта проходит, но curl не завершает TLS-согласование. Это условный пример: наличие доступного порта здесь помогает исключить один класс проблем, но не подтверждает настройку HTTPS.

Администратор проверяет схему публикации и обнаруживает, что внешний порт 443 направлен на внутренний HTTP-обработчик. Раньше TLS завершался на отдельном прокси, а при переносе этот компонент исключили. Клиент приходит с HTTPS, но принимающая служба не настроена завершать такой обмен.

Исправление — восстановить предусмотренную точку завершения TLS или корректно настроить её на новом узле, затем проверить конфигурацию и применить изменения штатным способом. После этого повторяют запрос к публичному домену с правильным именем, проверкой сертификата и ожидаемой страницей. Повторная выдача того же сертификата и очистка cookies не исправили бы неверный маршрут к обработчику.

Как подтвердить восстановление и замечать повторные ошибки

Повторите исходную попытку с тем же адресом и из тех условий, где проявлялся сбой. Затем проверьте ещё один актуальный браузер и независимое подключение. Оценивайте не только отсутствие красного экрана: должен открываться ожидаемый сайт, а не другой виртуальный хост или заглушка посредника.

Для нескольких публичных имён и серверных адресов составьте короткий список проверок после развёртывания. Включите в него важные поддомены и варианты маршрута, которые затронуло изменение. Запишите установленную причину и исправленную настройку. Это ускорит разбор следующего похожего сообщения и позволит заметить возврат прежней конфигурации.

Для контроля сайта после развёртываний ознакомьтесь с SiteGuard и проверьте, подходят ли актуальные возможности сервиса вашему набору публичных доменов. При выборе решения учитывайте проверку HTTPS, историю результатов и порядок оповещения ответственных за сайт. Проверка публичного домена через CDN не исследует автоматически TLS между CDN и скрытым origin, а успешный внешний запрос не гарантирует одинаковый результат на каждом устройстве.

Что отправить владельцу сайта или хостингу

Подготовьте полный адрес без секретных параметров, точный код ошибки, время с часовым поясом, браузер, систему и результаты сравнения устройств или сетей. Владельцу дополнительно полезны фактический адрес назначения, схема подключения и последние изменения. Так поддержка сможет повторить нужный сценарий, а не проверять только главную страницу со своего компьютера.

Отделяйте наблюдение от предположения: «TLS-проверка прерывается на этом узле» точнее, чем «сломался SSL». Перед передачей вывода команд или журналов удалите токены и персональные данные. Закрытые ключи и пароли для первичного разбора не нужны. Если ошибка исчезла без установленной причины, сохраните это как факт восстановления, продолжив наблюдение за теми же условиями.

Частые вопросы об ошибке SSL-протокола

ERR_SSL_PROTOCOL_ERROR всегда означает просроченный сертификат?

Нет. Сначала проверьте точный код и этап сбоя. Ошибка может возникнуть из-за протокола на порту, конфигурации посредника или TLS-согласования. Срок сертификата проверяют по соответствующим сообщениям и фактически предъявленному сертификату.

Почему HTTPS работает на компьютере, но не на телефоне?

Сравните версии системы и браузера, используемую сеть и сетевые приложения. Подключения могут попасть на разные адреса сайта. Один успешный клиент сужает поиск, но не подтверждает одинаковую совместимость всех устройств.

Нужно ли отключать антивирус или проверку HTTPS?

Сначала проверьте журналы и обновления сетевого защитного ПО. При подтверждённой несовместимости исправляют конкретный компонент вместе с администратором или его поддержкой. Постоянное отключение защиты не устраняет причину конфликта.

Поможет ли перевод сайта на HTTP?

Он изменит способ подключения и уберёт защиту передаваемых данных. Для нормального восстановления нужно исправить HTTPS. Особенно важно сохранить защищённый путь для авторизации, платежей и личного кабинета.

Почему сертификат установлен, а ошибка остаётся?

Файл мог быть установлен на другой узел или не применён работающей службой. Возможны неверный порт, отсутствующая TLS-конфигурация и неподготовленный hostname на CDN. Проверяйте то, что реально получает клиент через публичный адрес.

Документация