ERR_SSL_PROTOCOL_ERROR: как исправить (Chrome, Edge, все браузеры)

Что такое ERR_SSL_PROTOCOL_ERROR?
ERR_SSL_PROTOCOL_ERROR -- это ошибка браузера, возникающая при сбое SSL/TLS-рукопожатия между вашим браузером и веб-сервером. Браузер не может установить защищённое зашифрованное соединение и полностью блокирует страницу, чтобы защитить вас от передачи данных по незащищённому каналу.
Каждое HTTPS-соединение начинается с TLS-рукопожатия -- процесса согласования, в ходе которого браузер и сервер договариваются о протоколе шифрования (TLS 1.2 или 1.3), обмениваются сертификатами и проверяют подлинность друг друга. ERR_SSL_PROTOCOL_ERROR означает, что это согласование прервалось до завершения.
Эта ошибка не является серверным HTTP-кодом состояния -- она возникает в вашем браузере до отправки какого-либо HTTP-запроса. Внутренний код ошибки Chromium -- net::ERR_SSL_PROTOCOL_ERROR (код ошибки -107), определённый в исходном коде Chromium как сбой согласования приемлемого набора параметров безопасности.
Как выглядит ERR_SSL_PROTOCOL_ERROR
Chrome и другие браузеры на основе Chromium отображают эту ошибку как полностраничное предупреждение с сообщением "Этот сайт не может обеспечить безопасное соединение." Ниже отображается конкретный код ошибки. Вот основные варианты, которые вы можете встретить.
ERR_SSL_PROTOCOL_ERROR -- стандартный код ошибки в адресной строке Chrome
net::ERR_SSL_PROTOCOL_ERROR -- полный внутренний код ошибки, отображаемый в консоли DevTools Chrome
Этот сайт не может обеспечить безопасное соединение -- основное сообщение для пользователя в Chrome
[домен] отправил недопустимый ответ -- подробный текст ошибки, который Chrome отображает под заголовком
ERR_SSL_PROTOCOL_ERROR во всех браузерах -- когда ошибка появляется одновременно в Chrome, Edge, Brave и Opera (указывает на проблему на стороне сервера или системы, а не на ошибку конкретного браузера)
Что вызывает ERR_SSL_PROTOCOL_ERROR?
У этой ошибки есть причины как на стороне клиента (ваше устройство), так и на стороне сервера (сайт). Определение того, на чьей стороне проблема, -- первый шаг к её решению. Если ошибка появляется на всех сайтах, проблема на вашей стороне. Если только на одном конкретном сайте, проблема, вероятно, на стороне сервера.
Неправильная дата/время системы -- причина №1 на стороне пользователя. SSL-сертификаты зависят от времени -- если часы вашего компьютера отклоняются хотя бы на несколько минут, проверка сертификата не проходит и TLS-рукопожатие прерывается.
Просроченный или недействительный SSL-сертификат -- SSL-сертификат сайта истёк, является самоподписанным или был выдан для другого домена. Вы можете мгновенно проверить любой сертификат с помощью нашего SSL Checker.
Устаревший протокол TLS -- сервер поддерживает только устаревшие протоколы (SSL 3.0, TLS 1.0, TLS 1.1), которые современные браузеры отказываются использовать. Chrome, Edge и Firefox прекратили поддержку TLS 1.0/1.1 в 2020 году.
Повреждённое состояние SSL браузера -- ваш браузер кэшировал устаревшие данные SSL-сессии, настройки HSTS или информацию о сертификатах, которая конфликтует с текущей попыткой подключения.
Конфликт протокола QUIC -- экспериментальный протокол QUIC в Chrome (HTTP/3) иногда может мешать TLS-согласованию на серверах, которые его некорректно поддерживают.
Сканирование SSL/HTTPS антивирусом -- защитное ПО, перехватывающее HTTPS-трафик (Avast, Kaspersky, Bitdefender, ESET), может нарушить TLS-рукопожатие, подставляя собственный сертификат в соединение.
Неполная цепочка сертификатов -- сервер отправляет свой SSL-сертификат, но не промежуточные сертификаты, необходимые для проверки цепочки доверия до корневого центра сертификации.
Помехи от VPN или прокси -- VPN-сервисы и корпоративные прокси, проверяющие HTTPS-трафик, могут нарушить TLS-рукопожатие, особенно при переключении между сетями.
Расширения браузера -- расширения для конфиденциальности, блокировщики рекламы и дополнения безопасности, изменяющие HTTPS-запросы, могут помешать SSL-рукопожатию.
Брандмауэр блокирует порт 443 -- сетевой брандмауэр или маршрутизатор блокирует стандартный HTTPS-порт (443), не позволяя завершить TLS-рукопожатие.
Как исправить ERR_SSL_PROTOCOL_ERROR (для пользователей)
Если вы видите эту ошибку при просмотре сайтов, начните с самых простых решений. В большинстве случаев проблема решается первыми тремя способами, перечисленными ниже.
Способ 1: Проверьте дату и время системы
Неправильные системные часы -- наиболее частая причина ERR_SSL_PROTOCOL_ERROR. SSL-сертификаты имеют срок действия (даты «Не ранее» / «Не позднее»), и если системное время выходит за этот диапазон, рукопожатие не удаётся. Даже отклонение в несколько минут может вызвать проблемы при строгой проверке сертификата.
Убедитесь, что на вашем компьютере настроена автоматическая синхронизация времени.
Windows: Параметры -> Время и язык -> Дата и время -> Включите «Установить время автоматически» и «Автоматически устанавливать часовой пояс»
Mac: Системные настройки -> Основные -> Дата и время -> Включите «Устанавливать дату и время автоматически»
Linux: Выполните
sudo timedatectl set-ntp trueдля включения синхронизации NTP
Способ 2: Очистите состояние SSL (Windows)
Windows поддерживает собственный кэш SSL-сертификатов, отдельный от браузера. Устаревшие или повреждённые записи в этом кэше могут вызывать постоянную ошибку ERR_SSL_PROTOCOL_ERROR даже после очистки кэша браузера.
Чтобы очистить состояние SSL в Windows: откройте Свойства обозревателя (найдите в меню «Пуск» или введите inetcpl.cpl в диалоге «Выполнить») -> перейдите на вкладку Содержание -> нажмите Очистить SSL -> нажмите ОК. Затем перезапустите браузер.
Способ 3: Очистите кэш и файлы cookie браузера
Повреждённые кэшированные данные или устаревшие записи HSTS (HTTP Strict Transport Security) могут заставить браузер пытаться подключаться с устаревшими параметрами, что вызывает ошибку протокола SSL.
Шаг 1: Откройте Настройки Chrome -> Конфиденциальность и безопасность -> Очистить данные просмотра (или нажмите
Ctrl+Shift+Delete)Шаг 2: Перейдите на вкладку Дополнительные
Шаг 3: Установите временной диапазон За всё время
Шаг 4: Отметьте Изображения и другие файлы, сохранённые в кэше, Файлы cookie и другие данные сайтов и Данные размещённых приложений
Шаг 5: Нажмите Удалить данные и перезапустите Chrome
Для отдельного сайта вы также можете очистить только его данные: перейдите в chrome://settings/content/all -> найдите домен -> нажмите на значок корзины.
Способ 4: Отключите протокол QUIC
Chrome по умолчанию использует протокол QUIC (HTTP/3 поверх UDP) для более быстрых соединений. Однако некоторые серверы, брандмауэры и сетевое оборудование некорректно обрабатывают QUIC, что может приводить к сбоям SSL-рукопожатия. Отключение QUIC заставляет Chrome использовать стандартные TLS-соединения на основе TCP.
Шаг 1: Введите
chrome://flags/#enable-quicв адресной строкеШаг 2: Найдите Experimental QUIC protocol
Шаг 3: Измените значение с Default на Disabled
Шаг 4: Нажмите Relaunch для перезапуска Chrome
Если ошибка исчезает после отключения QUIC, проблема связана с реализацией HTTP/3 на сервере или с тем, что ваша сеть блокирует UDP-порт 443. Вы можете оставить QUIC отключённым без каких-либо негативных последствий -- страницы будут загружаться по стандартному HTTPS (HTTP/2 поверх TCP).
Способ 5: Отключите расширения браузера
Расширения, перехватывающие или изменяющие веб-трафик -- блокировщики рекламы, VPN-расширения, защитники конфиденциальности и HTTPS Everywhere -- могут мешать TLS-рукопожатию. Некоторые расширения внедряют собственные сертификаты или изменяют заголовки запросов так, что это нарушает SSL-согласование.
Перейдите в chrome://extensions/, отключите все расширения и перезагрузите страницу. Если ошибка исчезнет, включайте расширения по одному, чтобы найти виновника. Чаще всего проблемы вызывают: uBlock Origin (редко), Avast Online Security, Norton Safe Web и HTTPS Everywhere.
Способ 6: Отключите сканирование SSL/HTTPS в антивирусе
Многие антивирусные программы (Avast, Kaspersky, Bitdefender, ESET, Norton) включают функцию «HTTPS-сканирования» или «SSL-проверки», которая перехватывает зашифрованные соединения, действуя как прокси-посредник. Это может нарушить TLS-рукопожатие, особенно с сайтами, использующими закрепление сертификатов или новые функции TLS 1.3.
Найдите параметры с названием Веб-экран, HTTPS-сканирование, SSL-сканирование или Сканирование зашифрованных соединений в вашем антивирусе и временно отключите их. Если ошибка исчезнет, вы можете добавить проблемный домен в список исключений антивируса.
Способ 7: Обновите браузер
Старые версии браузеров могут не поддерживать протоколы TLS или наборы шифров, требуемые современными сайтами. Chrome регулярно обновляет требования безопасности -- например, Chrome 98 полностью прекратил поддержку TLS 1.0 и 1.1.
Обновите Chrome: перейдите в chrome://settings/help или Меню -> Справка -> О браузере Google Chrome. Chrome автоматически загружает обновления, но для их применения требуется перезапуск. Для Edge: edge://settings/help. Для Firefox: Меню -> Справка -> О Firefox.
Способ 8: Очистите DNS-кэш
Устаревшие DNS-записи могут направлять ваш браузер на неправильный сервер или устаревший IP-адрес, на котором больше нет действительного SSL-сертификата. Очистка DNS-кэша принудительно выполняет новый DNS-запрос.
# Windows (Command Prompt as Admin)
ipconfig /flushdns
# macOS
sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder
# Linux
sudo systemd-resolve --flush-caches
# Chrome internal DNS cache
# Visit chrome://net-internals/#dns → Click "Clear host cache"После очистки убедитесь, что домен разрешается в правильный IP-адрес с помощью инструмента DNS Lookup от DNS Robot. Если IP-адрес выглядит неправильно, возможно, сайт сменил хостинг-провайдера и DNS ещё не полностью обновился.
Способ 9: Попробуйте режим инкогнито
Режим инкогнито запускается с чистым состоянием браузера -- без кэшированных данных, cookie и расширений (если вы не разрешили их использование в режиме инкогнито). Если сайт загружается в режиме инкогнито, но не в обычном, проблема вызвана расширением браузера, кэшированными данными или повреждённым профилем браузера.
Откройте окно инкогнито: Ctrl+Shift+N (Chrome/Edge) или Ctrl+Shift+P (Firefox). Перейдите на тот же сайт. Если он загружается, очистите кэш браузера (Способ 3) или проверьте расширения (Способ 5).
Способ 10: Отключите VPN или прокси
VPN и HTTP-прокси находятся между вашим браузером и веб-сервером. Некоторые VPN проверяют HTTPS-трафик, внедряют собственные сертификаты или направляют соединения через серверы с неправильной SSL-конфигурацией. Корпоративные прокси часто используют SSL-перехват (аналогично HTTPS-сканированию антивируса), который может нарушить TLS-рукопожатие.
Временно отключите VPN и попробуйте загрузить сайт. Если он работает без VPN, проблема в том, как ваш VPN обрабатывает SSL-соединения. Попробуйте другой VPN-сервер или обратитесь к провайдеру VPN.
Способ 11: Сброс сетевых настроек (крайняя мера)
Если ничего другого не помогает, сбросьте сетевой стек. Это удаляет все пользовательские сетевые настройки и возвращает всё к значениям по умолчанию -- включая параметры DNS, конфигурации прокси и сокетные соединения.
# Windows (Command Prompt as Admin)
netsh winsock reset
netsh int ip reset
ipconfig /release
ipconfig /renew
ipconfig /flushdns
# Then restart your computer
# macOS — reset DNS settings
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
# Linux — restart NetworkManager
sudo systemctl restart NetworkManagerКак исправить ERR_SSL_PROTOCOL_ERROR (для владельцев сайтов)
Если несколько пользователей сообщают об ошибке ERR_SSL_PROTOCOL_ERROR на вашем сайте, проблема на стороне сервера. Наиболее частые серверные причины -- просроченные сертификаты, отсутствующие промежуточные сертификаты и устаревшие конфигурации TLS.
Проверьте свой SSL-сертификат
Первый шаг -- убедиться, что ваш SSL-сертификат действителен, правильно установлен и не просрочен. Используйте SSL Checker от DNS Robot для мгновенной проверки статуса сертификата, даты истечения, издателя и цепочки сертификатов.
Распространённые проблемы с сертификатами, вызывающие ERR_SSL_PROTOCOL_ERROR:
Просроченный сертификат -- сертификаты Let's Encrypt истекают каждые 90 дней. Если автоматическое продление не сработало (cron certbot не запущен, DNS-challenge сломан), ваш сертификат тихо истекает.
Неверный домен -- сертификат выдан для
example.com, но сайт обслуживается по адресуwww.example.com(или наоборот). Сертификат должен соответствовать точному домену или содержать подстановочный знак (*.example.com).Самоподписанный сертификат -- сертификаты для разработки не являются доверенными для браузеров в продакшене.
Отозванный сертификат -- центр сертификации отозвал сертификат (из-за компрометации ключа, ошибочной выдачи или смены владельца домена).
# Check certificate from command line
openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | openssl x509 -noout -dates -subject -issuer
# Check certificate chain completeness
openssl s_client -connect yourdomain.com:443 -servername yourdomain.com 2>/dev/null | grep -E "(depth|verify)"
# Renew Let's Encrypt certificate
sudo certbot renew --force-renewalВключите TLS 1.2 и TLS 1.3
Все современные браузеры требуют как минимум TLS 1.2. Если ваш сервер поддерживает только TLS 1.0 или 1.1, браузеры откажутся подключаться и покажут ERR_SSL_PROTOCOL_ERROR. TLS 1.3 -- это новейший стандарт, значительно быстрее TLS 1.2. Включите оба протокола для максимальной совместимости и производительности.
# Nginx — ssl_protocols in nginx.conf or site config
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384';
ssl_prefer_server_ciphers on;
# Apache — in httpd.conf or ssl.conf
SSLProtocol -all +TLSv1.2 +TLSv1.3
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256
SSLHonorCipherOrder onПосле обновления конфигурации TLS перезапустите веб-сервер (sudo systemctl restart nginx или sudo systemctl restart apache2) и проверьте с помощью SSL Checker от DNS Robot, что протоколы активны.
Установите полную цепочку сертификатов
Неполная цепочка сертификатов -- частая, но трудно диагностируемая причина ERR_SSL_PROTOCOL_ERROR. Ваш сервер должен отправлять не только SSL-сертификат, но и промежуточные сертификаты, связывающие ваш сертификат с доверенным корневым центром сертификации. Без них некоторые браузеры и устройства не смогут проверить сертификат.
Большинство центров сертификации предоставляют файл «CA bundle» или «full chain». Для Let's Encrypt используйте fullchain.pem (а не просто cert.pem). Для других CA скачайте промежуточный сертификат из их документации и объедините его с вашим сертификатом.
# Nginx — use fullchain, not just cert
ssl_certificate /etc/letsencrypt/live/yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yourdomain.com/privkey.pem;
# Apache
SSLCertificateFile /etc/letsencrypt/live/yourdomain.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/yourdomain.com/privkey.pemПроверьте конфигурацию HSTS
HSTS (HTTP Strict Transport Security) указывает браузерам всегда использовать HTTPS для вашего домена. Если ваша политика HSTS имеет длительный max-age, а ваш SSL-сертификат впоследствии ломается, браузеры откажутся подключаться -- они не могут вернуться к HTTP, и неработающий HTTPS вызывает ERR_SSL_PROTOCOL_ERROR.
Проверьте заголовок HSTS с помощью инструмента HTTP Headers от DNS Robot. Если вы установили очень длительный max-age (например, 2 года) и ваш сертификат истёк, пользователи, ранее посещавшие ваш сайт, привязаны к HTTPS без возможности отката. Чтобы это исправить, сначала исправьте SSL-сертификат, и тогда браузеры снова смогут подключаться.
Проверьте конфигурацию сервера
Неправильно настроенный веб-сервер может вызвать ERR_SSL_PROTOCOL_ERROR даже при наличии действительного сертификата. Распространённые ошибки конфигурации:
Неверный порт -- SSL/TLS должен работать на порту 443. Если ваш сервер слушает на другом порту, браузеры могут не выполнить рукопожатие.
Смешанный HTTP/HTTPS -- обслуживание некоторых ресурсов по HTTP на HTTPS-странице вызывает предупреждения о смешанном содержимом и может нарушить рукопожатие для подресурсов.
SNI (Server Name Indication) не настроен -- если несколько доменов используют один IP-адрес, сервер должен поддерживать SNI для предоставления правильного сертификата каждому домену.
Несоответствие наборов шифров -- сервер поддерживает только те наборы шифров, которые браузер не принимает. Используйте современные надёжные шифры, такие как AES-GCM и ChaCha20.
Используйте инструмент проверки HTTP Headers от DNS Robot для анализа заголовков ответа вашего сервера и проверки правильности SSL-конфигурации.
ERR_SSL_PROTOCOL_ERROR на Android
Пользователи Android сталкиваются с ERR_SSL_PROTOCOL_ERROR как в Chrome для Android, так и в приложениях на основе WebView. Решения несколько отличаются от десктопных, поскольку Android управляет сертификатами и сетевыми настройками по-другому.
Проверьте дату и время -- Настройки -> Система -> Дата и время -> Включите «Автоматическая дата и время» и «Автоматический часовой пояс»
Очистите данные Chrome -- Настройки -> Приложения -> Chrome -> Хранилище -> Очистить кэш (затем Очистить данные, если очистка кэша не помогла)
Обновите Chrome -- Откройте Google Play -> Мои приложения -> Обновите Chrome до последней версии
Очистите сетевые учётные данные -- Настройки -> Безопасность -> Очистить учётные данные (это удалит все установленные пользователем сертификаты)
Сбросьте сетевые настройки -- Настройки -> Система -> Сброс -> Сбросить настройки Wi-Fi, мобильных данных и Bluetooth
Для приложений WebView -- разработчикам следует убедиться, что установлен
android:usesCleartextTraffic="false"и что конфигурация сетевой безопасности доверяет правильным центрам сертификации
ERR_SSL_PROTOCOL_ERROR в других браузерах
ERR_SSL_PROTOCOL_ERROR -- это код ошибки, специфичный для Chromium. Другие браузеры отображают иные сообщения при том же сбое SSL-рукопожатия.
| Браузер | Сообщение об ошибке | Код ошибки |
|---|---|---|
| Chrome / Edge / Brave / Opera | Этот сайт не может обеспечить безопасное соединение | ERR_SSL_PROTOCOL_ERROR |
| Firefox | Сбой безопасного соединения | SSL_ERROR_RX_MALFORMED_HANDSHAKE |
| Safari | Safari не может установить безопасное соединение | Конкретный код не отображается |
| Internet Explorer | Эта страница не может быть отображена | Включите TLS 1.0, 1.1, 1.2 в свойствах обозревателя |
Если ошибка появляется во всех браузерах одновременно, проблема либо системная (неверная дата/время, антивирус, сеть), либо серверная (просроченный сертификат, неправильная конфигурация TLS). Если ошибка появляется только в одном браузере, проблема специфична для этого браузера -- попробуйте очистить его кэш и состояние SSL.
ERR_SSL_PROTOCOL_ERROR на localhost (для разработчиков)
Разработчики часто сталкиваются с ошибкой localhost sent an invalid response. ERR_SSL_PROTOCOL_ERROR при запуске локальных серверов разработки. Это происходит потому, что браузер ожидает действительный SSL-сертификат для HTTPS-соединений, а на localhost используется самоподписанный сертификат или сертификат отсутствует.
Используйте HTTP для локальной разработки -- измените
https://localhost:3000наhttp://localhost:3000, если вам не нужен именно HTTPSСгенерируйте локальный сертификат -- используйте mkcert для создания доверенных локальных SSL-сертификатов:
mkcert -install && mkcert localhost 127.0.0.1Node.js -- установите
NODE_TLS_REJECT_UNAUTHORIZED=0только для разработки (никогда в продакшене)Флаг Chrome -- введите
chrome://flags/#allow-insecure-localhostи включите «Allow invalid certificates for resources loaded from localhost»Next.js / Vite / Webpack -- эти фреймворки поддерживают флаги
--https, автоматически генерирующие сертификаты для разработки
Связанные коды ошибок SSL/TLS
Chrome имеет несколько кодов ошибок, связанных с SSL. Все они указывают на различные проблемы TLS-рукопожатия или сертификата.
| Код ошибки | Значение | Распространённая причина |
|---|---|---|
| ERR_SSL_PROTOCOL_ERROR | TLS-рукопожатие полностью не удалось | Неверная дата/время, несоответствие версии TLS, конфликт QUIC |
| ERR_SSL_VERSION_OR_CIPHER_MISMATCH | Нет общей версии TLS или набора шифров | Сервер использует устаревший TLS 1.0/1.1, слабые шифры |
| ERR_CERT_AUTHORITY_INVALID | Сертификат не подписан доверенным CA | Самоподписанный сертификат, отсутствует промежуточный, корневой просрочен |
| ERR_CERT_DATE_INVALID | Сертификат просрочен или ещё не действителен | Сертификат просрочен, системные часы неверны |
| ERR_CERT_COMMON_NAME_INVALID | Домен сертификата не совпадает с URL | Сертификат для example.com, сайт на www.example.com |
| ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN | Проверка закрепления сертификата не пройдена | Сайт использует HPKP, а сертификат изменён |
Для всех ошибок SSL вы можете быстро диагностировать проблему с помощью SSL Checker от DNS Robot -- он показывает статус сертификата, полноту цепочки, поддерживаемые версии TLS и дату истечения за одно сканирование.
Проверьте свой SSL-сертификат прямо сейчас
Используйте бесплатный SSL Checker от DNS Robot для мгновенной проверки статуса сертификата, даты истечения, цепочки сертификатов и поддержки протоколов TLS. Диагностируйте ERR_SSL_PROTOCOL_ERROR за считанные секунды.
Try SSL CheckerFrequently Asked Questions
ERR_SSL_PROTOCOL_ERROR означает, что вашему браузеру не удалось установить защищённое TLS/SSL-соединение с сайтом. TLS-рукопожатие -- процесс, в ходе которого браузер и сервер согласовывают шифрование, -- прервалось до завершения. Это ошибка на стороне клиента, а не серверный HTTP-код состояния.