
Ошибка err ssl version or cipher mismatch (в Chrome — ERR_SSL_VERSION_OR_CIPHER_MISMATCH) означает, что браузер и сервер не нашли общей версии TLS или общего набора шифров и прервали рукопожатие. Чаще всего виноват сервер: на нём остался только TLS 1.0/1.1, слабые шифры, нет сертификата для этого имени или сайт требует ГОСТ-шифрования, которого нет в обычном браузере.
Ниже — что значит ошибка и её русский текст «Этот сайт не может обеспечить безопасное соединение», таблица сообщений разных браузеров, причины со стороны сервера и клиента, отдельный разбор госсайтов с ГОСТ TLS (казначейство, ЕИС), готовые конфиги nginx, Apache и IIS и команды для проверки через openssl, curl и nmap.
Что означает ERR_SSL_VERSION_OR_CIPHER_MISMATCH
Когда браузер открывает HTTPS-соединение, он отправляет серверу список поддерживаемых версий TLS и шифров в сообщении ClientHello. Сервер выбирает из этого списка общий вариант и отвечает ServerHello. Если пересечения нет — ни одной общей версии протокола или ни одного общего cipher suite — рукопожатие прерывается, и Chrome показывает ERR_SSL_VERSION_OR_CIPHER_MISMATCH. В Firefox аналог — SSL_ERROR_NO_CYPHER_OVERLAP (именно так, через «Y») или SSL_ERROR_UNSUPPORTED_VERSION, в Safari — «Safari не удаётся установить безопасное соединение с сервером».
Ключевое слово здесь — mismatch (несовпадение). Ошибка не про истёкший сертификат сам по себе и не про неверный домен — это отказ на самом раннем этапе, до проверки сертификата. Стороны буквально не нашли общего языка для шифрования.
Перевод ошибки
Дословно ERR_SSL_VERSION_OR_CIPHER_MISMATCH переводится как «ошибка: несоответствие версии SSL или шифра». Слово SSL в названии историческое: сам протокол SSL давно не используется, соединение идёт по TLS, но коды ошибок в Chromium сохранили старое имя. Префикс NET:: (net err ssl version or cipher mismatch) — то же самое, так Chrome помечает сетевые ошибки в диагностике.
Этот сайт не может обеспечить безопасное соединение
Так ошибка выглядит в русскоязычном Chrome, Edge и других браузерах на Chromium. Страница состоит из трёх строк, и важна каждая:
- Заголовок «Этот сайт не может обеспечить безопасное соединение» — общий для нескольких TLS-ошибок, сам по себе причину не называет.
- Пояснение «На сайте example.com используется неподдерживаемый протокол» и ниже «Клиент и сервер поддерживают разные версии протокола SSL или набора шифров» — вот это и есть наш случай: несовпадение версий или шифров.
- Код ERR_SSL_VERSION_OR_CIPHER_MISMATCH в самом низу — по нему и надо искать решение.
С тем же заголовком, но с другим пояснением («Сайт отправил недействительный ответ») приходит ERR_SSL_PROTOCOL_ERROR — это уже сбой посреди рукопожатия, а не несовпадение параметров. Разбор этой ошибки — в статье исправление ERR_SSL_PROTOCOL_ERROR. Поэтому прежде чем что-то менять, прочитайте код внизу страницы: при одинаковом заголовке причины и лечение разные.
Сообщение браузера и причина: таблица
Одна и та же ситуация в разных браузерах называется по-разному, а похожие по тексту сообщения означают разные проблемы. Таблица помогает быстро понять, с чем вы имеете дело.
| Браузер | Сообщение или код | Что это значит |
|---|---|---|
| Chrome, Edge, Opera | ERR_SSL_VERSION_OR_CIPHER_MISMATCH, «Клиент и сервер поддерживают разные версии протокола SSL или набора шифров» | Нет общей версии TLS или общего шифра |
| Яндекс Браузер | «На сайте используется неподдерживаемый протокол» | То же несовпадение; на госсайтах часто означает, что ресурс требует ГОСТ TLS |
| Firefox | SSL_ERROR_NO_CYPHER_OVERLAP | Нет ни одного общего набора шифров |
| Firefox | SSL_ERROR_UNSUPPORTED_VERSION | Сервер предлагает только устаревшую версию протокола (TLS 1.0/1.1) |
| Safari | «Safari не удаётся установить безопасное соединение с сервером» | Общее сообщение о сбое TLS, причину уточняют проверкой сервера |
| Chrome | ERR_SSL_PROTOCOL_ERROR, «Сайт отправил недействительный ответ» | Сбой посреди рукопожатия: обрыв, неверный ответ сервера, вмешательство прокси |
| Chrome | NET::ERR_CERT_DATE_INVALID | Сертификат просрочен или неверное время на компьютере |
| Chrome | NET::ERR_CERT_AUTHORITY_INVALID | Сертификат выдан неизвестным браузеру центром сертификации (самоподписанный или российский УЦ без установленного корня) |
Причины ERR_SSL_VERSION_OR_CIPHER_MISMATCH
Причины делятся на две большие группы: серверные (их подавляющее большинство) и клиентские. Разберём обе.
Устаревшие версии TLS (1.0 и 1.1)
Самая частая причина после 2020 года. Chrome, Firefox, Safari и Edge отключили поддержку TLS 1.0 и TLS 1.1 как небезопасных. Если сервер настроен работать только по этим протоколам, современный браузер не найдёт общей версии и выдаст ошибку. Решение — включить на сервере TLS 1.2 и TLS 1.3.
Несовместимые cipher suites
Даже при совпадении версии TLS стороны должны согласовать конкретный набор шифров. Если сервер предлагает только устаревшие шифры (RC4, 3DES, DES, export-grade, шифры без forward secrecy), а браузер их давно не поддерживает, пересечения не будет. Нужно настроить современный список: ECDHE с AES-GCM и ChaCha20-Poly1305.
Устаревшие и слабые шифры: RC4, 3DES, DES
Шифр RC4 признан небезопасным (RFC 7465 прямо запрещает его в TLS), 3DES уязвим к атаке Sweet32, а export-grade шифры — наследие 90-х. Браузеры удалили их из своих списков. Сервер, полагающийся на такие шифры, обречён на mismatch с новыми клиентами. Как найти и убрать такие наборы в конфиге, подробно описано в материале про слабые cipher suites.
Проблемы с сертификатом
Хотя ошибка в первую очередь про протокол и шифры, к ней может привести и неправильно установленный сертификат: неверный формат ключа, несоответствие типа сертификата (например, ECDSA-ключ при RSA-шифрах в конфиге), самоподписанный или повреждённый сертификат, из-за которого сервер не может корректно завершить согласование. Просроченный сертификат чаще даёт другую ошибку (NET::ERR_CERT_DATE_INVALID), но в связке с ограниченным конфигом может проявиться и как cipher mismatch.
Типичная ловушка — ECDSA-сертификат и строка шифров только с ECDHE-RSA-*. Для ECDSA-ключа нужны наборы ECDHE-ECDSA-*; если их в списке нет, сервер не может предложить ни одного подходящего шифра, и браузер видит mismatch даже при включённом TLS 1.2.
Нет сертификата для этого имени (SNI)
Браузер сообщает имя сайта в расширении SNI внутри ClientHello, и сервер по нему выбирает сертификат. Если для запрошенного имени на сервере нет ни сертификата, ни HTTPS-блока по умолчанию, рукопожатие обрывается. Так бывает, когда сайт добавили на сервер, а блок listen 443 ssl для него не создали, когда в nginx включён ssl_reject_handshake on для неизвестных имён или когда в IIS нет привязки https для нужного имени узла. Проверка: openssl s_client -connect example.com:443 -servername example.com — если с указанным именем соединение не устанавливается, а без него сервер отдаёт чужой сертификат, дело в SNI.
Cloudflare и другие CDN
Если сайт проксируется через Cloudflare, браузер согласует TLS не с вашим сервером, а с пограничным узлом CDN. Ошибка возникает, когда граничный сертификат для домена ещё не выпущен (сразу после подключения домена или смены тарифа), когда запись в DNS проксируется, а сертификата для этого имени нет, и для поддоменов второго уровня вроде www.dev.example.com: бесплатный универсальный сертификат покрывает только корень и поддомены первого уровня. Разбор этих случаев есть в документации Cloudflare. Проверьте раздел SSL/TLS → Edge Certificates: статус сертификата должен быть Active.
Ошибки после включения HTTP/2 или HSTS
Протокол HTTP/2 требует так называемого ALPN и запрещает целый список слабых шифров из своего чёрного списка (RFC 7540, ныне RFC 9113). Если вы включили http2 в директиве listen, но оставили в ssl_ciphers только устаревшие наборы, браузер откажется завершать рукопожатие именно с этой ошибкой. Аналогично, после включения строгого HSTS с preload браузер запрещает любые понижения защиты — и малейшая несовместимость шифров превращается в жёсткий отказ без возможности продолжить по HTTP. Поэтому включайте HTTP/2 и HSTS только вместе с современным списком шифров ECDHE и AES-GCM.
Клиентские причины
Реже виноват сам компьютер пользователя: очень старый браузер или ОС без TLS 1.2 (например, программы на Windows XP или Android 4.x), антивирус или корпоративный прокси, которые перехватывают HTTPS и сами согласуют соединение с сайтом по устаревшим правилам, неверное системное время. В этих случаях сайт открывается с других устройств, а ошибка видна только на одном.
На сайте используется неподдерживаемый протокол: госсайты и ГОСТ
Отдельная большая группа запросов — ошибка на государственных ресурсах: сайтах Федерального казначейства (Росказна), в личных кабинетах ЕИС (zakupki.gov.ru), в системах, где работают с электронной подписью. Здесь причина, как правило, не в устаревшей настройке, а наоборот: часть таких сервисов принимает соединения только по TLS с российскими криптоалгоритмами ГОСТ (наборы шифров на основе ГОСТ Р 34.10-2012, «Кузнечик», «Магма»; для TLS 1.2 они описаны в RFC 9189).
Chrome, Firefox, Edge и Safari ГОСТ-шифров не поддерживают вообще. Сервер предлагает только ГОСТ, браузер — только международные алгоритмы, пересечения нет, и на экране та самая «неподдерживаемый протокол» / ERR_SSL_VERSION_OR_CIPHER_MISMATCH. Отключить эту проверку в браузере нельзя, да и не нужно: нужен браузер, который умеет ГОСТ.
- Установите криптопровайдер, который требует ресурс (обычно КриптоПро CSP), и плагин для работы с электронной подписью, если он указан в инструкции сервиса.
- Откройте сайт в браузере с поддержкой ГОСТ TLS. В Яндекс Браузере это отдельная настройка в разделе «Системные» — подключение к сайтам, использующим шифрование по ГОСТ (для неё нужен установленный КриптоПро CSP). Есть и сборки Chromium с поддержкой ГОСТ, например Chromium-Gost.
- Сверьтесь с инструкцией самого ресурса. Казначейство и операторы госсистем публикуют перечень поддерживаемых браузеров и версий криптопровайдера — он важнее общих советов.
- Перезапустите браузер после установки криптопровайдера и смены настройки: сессия TLS, открытая до этого, не пересогласуется сама.
Не путайте ГОСТ TLS с сертификатом Минцифры. Сайты на сертификатах российского УЦ используют обычные международные шифры, и без установленного корня браузер показывает не mismatch, а NET::ERR_CERT_AUTHORITY_INVALID. Как устроена эта цепочка и как установить корневой сертификат, рассказано в статье про российские SSL-сертификаты и УЦ.
Серверная или клиентская ошибка
Первый практический шаг — определить, где проблема. Если ошибку видят все пользователи на всех устройствах — почти наверняка сервер. Если только вы на одном устройстве, а с телефона по мобильному интернету сайт открывается — причина локальная (устаревший браузер, антивирус, системное время, корпоративный прокси). Таблица ниже поможет диагностировать.
| Тип причины | Симптом | Как проверить | Решение |
|---|---|---|---|
| Серверная: старый TLS | Ошибка у всех, на всех устройствах | openssl s_client -connect host:443 -tls1_2 | Включить TLS 1.2/1.3 в конфиге сервера |
| Серверная: слабые шифры | Ошибка в новых браузерах, старые открывают | Проверка на /ssl или SSL Labs | Задать современный ssl_ciphers |
| Серверная: сертификат | Рукопожатие обрывается для всех | openssl s_client -connect host:443 -showcerts | Переустановить сертификат и цепочку |
| Серверная: нет сертификата для имени | Основной домен открывается, поддомен или новый сайт — нет | openssl s_client -connect host:443 -servername host | Добавить HTTPS-блок и сертификат для имени, в CDN — дождаться выпуска |
| Госсайт с ГОСТ TLS | Ошибка только на ресурсе казначейства, ЕИС и т. п. | Открыть в браузере с поддержкой ГОСТ | КриптоПро CSP и браузер с ГОСТ TLS |
| Клиентская: старый браузер | Ошибка только у одного пользователя | Открыть сайт в другом браузере/устройстве | Обновить браузер и ОС |
| Клиентская: антивирус/прокси | Ошибка исчезает без антивируса | Временно отключить HTTPS-сканирование | Отключить SSL-инспекцию в ПО |
| Клиентская: системное время | Ошибки TLS на многих сайтах | Проверить дату и время в системе | Синхронизировать время по NTP |
Как исправить на сервере
Если диагностика указала на сервер, отредактируйте конфигурацию веб-сервера, чтобы включить актуальные протоколы и шифры. Ниже — проверенные настройки для nginx и Apache на основе рекомендаций Mozilla (профиль Intermediate).
Настройка nginx
В блоке server вашего сайта задайте версии протокола и список шифров. Для TLS 1.3 набор шифров фиксирован стандартом, для TLS 1.2 указываем ECDHE-приоритет:
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/ssl/example.com/fullchain.pem;
ssl_certificate_key /etc/ssl/example.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1d;
}После правки проверьте синтаксис и перезагрузите nginx:
sudo nginx -t
sudo systemctl reload nginxЕсли после reload ничего не изменилось, проверьте, не переопределяются ли ssl_protocols и ssl_ciphers в другом месте. Посмотреть итоговую конфигурацию целиком можно командой:
sudo nginx -T | grep -nE "ssl_protocols|ssl_ciphers|listen .*443"Настройка Apache
В файле виртуального хоста (например, /etc/apache2/sites-enabled/example.com.conf) или в конфигурации SSL задайте:
<VirtualHost *:443>
ServerName example.com
SSLEngine on
SSLCertificateFile /etc/ssl/example.com/fullchain.pem
SSLCertificateKeyFile /etc/ssl/example.com/privkey.pem
SSLProtocol -all +TLSv1.2 +TLSv1.3
SSLHonorCipherOrder off
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305
</VirtualHost>Проверьте конфигурацию и перезапустите Apache:
sudo apachectl configtest
sudo systemctl reload apache2Для TLS 1.3 нужны Apache 2.4.37 или новее и OpenSSL 1.1.1 или новее; версии покажут apachectl -v и openssl version. На старых системах, где TLS 1.3 недоступен, достаточно корректного TLS 1.2 — ошибка уйдёт и без него.
Настройка IIS и Windows Server
В IIS протоколы и шифры задаёт не сайт, а сама Windows через компонент SChannel. Если TLS 1.2 на сервере выключен, его включают в реестре, в ветке
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Serverпараметрами DWORD Enabled = 1 и DisabledByDefault = 0, после чего сервер перезагружают. Набор шифров на Windows Server 2016 и новее можно посмотреть и включить из PowerShell:
Get-TlsCipherSuite | Format-Table Name
Enable-TlsCipherSuite -Name "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"Также проверьте в диспетчере IIS привязку сайта: у типа https должны быть указаны нужное имя узла и сертификат, а при нескольких сайтах на одном IP — включена опция «Требовать указание имени сервера» (SNI).
Проверка результата через openssl, curl и nmap
Убедитесь, что сервер теперь принимает TLS 1.2 и отдаёт корректный шифр. Команда openssl s_client покажет согласованную версию протокола и cipher suite:
openssl s_client -connect example.com:443 -servername example.com -tls1_2
# В выводе ищите строки: Protocol : TLSv1.2 и Cipher : ECDHE-RSA-AES128-GCM-SHA256Аналогично с ключом -tls1_3 проверяется TLS 1.3. Ответ вида alert handshake failure или no protocols available означает, что соединение с этой версией невозможно — именно это и видит браузер.
Для быстрой проверки через curl с подробным логом рукопожатия:
curl -v --tlsv1.2 https://example.com/
# Строка '* SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256' подтверждает успехПолный список версий и шифров, которые принимает сервер, выдаёт nmap со встроенным скриптом:
nmap --script ssl-enum-ciphers -p 443 example.comВ выводе будут разделы TLSv1.0, TLSv1.1, TLSv1.2, TLSv1.3 со списком шифров для каждой версии. Если раздела TLSv1.2 нет вовсе — вот и причина ошибки.
Как исправить в браузере
Если ошибка возникает только у вас, а сайт открывается на других устройствах, проблема на стороне клиента. Действуйте по порядку:
- Обновите браузер и ОС. Старые версии Chrome, Firefox или устаревшая Windows/Android могут не поддерживать современные шифры. В Chrome версия и обновление — в меню «Справка» → «О браузере Google Chrome».
- Очистите SSL-состояние и кэш. В Windows: «Свойства браузера» → «Содержание» → «Очистить SSL». Перезапустите браузер.
- Проверьте дату и время. Неверное системное время ломает TLS на многих сайтах — синхронизируйте по NTP. В Windows это делает команда
w32tm /resyncв командной строке от имени администратора. - Проверьте HTTPS-сканирование антивируса. Kaspersky, ESET, Avast и другие вклиниваются в TLS и могут навязывать несовместимые шифры. Для проверки временно выключите проверку защищённых соединений; если причина в ней, обновите антивирус, а не оставляйте защиту выключенной.
- Проверьте корпоративный прокси. Прокси с SSL-инспекцией в офисной сети — частая причина: он сам соединяется с сайтом по своим правилам. Сравните поведение с домашней или мобильной сетью и сообщите администратору сети.
- Попробуйте режим инкогнито. Это исключит влияние расширений браузера.
Если проблема на конкретном госресурсе, переходите к разделу про ГОСТ выше: там обычный браузер не поможет ни после обновления, ни после очистки кэша.
Как отключить ошибку ERR_SSL_VERSION_OR_CIPHER_MISMATCH
Коротко: никак, и это правильно. В актуальных версиях Chrome нет ни флага, ни настройки, которая вернула бы TLS 1.0/1.1 или удалённые шифры, — поддержку убрали из самого браузера. Ошибка не предупреждение, которое можно пропустить кнопкой «Продолжить», а невозможность установить соединение: общего шифра нет физически.
Не пытайтесь «включить старый TLS 1.0/1.1» в браузере ради обхода — это снижает вашу безопасность. Правильное решение зависит от того, кто вы:
- владелец сайта — исправить конфигурацию сервера по инструкциям выше;
- посетитель чужого сайта — сообщить владельцу, что сайт не работает в современных браузерах, и проверить, не виноват ли ваш антивирус или прокси;
- пользователь госсистемы — установить криптопровайдер и браузер с поддержкой ГОСТ, как требует ресурс.
Как проверить SSL вашего сайта
Прежде чем менять конфигурацию, полезно увидеть полную картину: какие версии TLS и шифры реально предлагает сервер, корректна ли цепочка сертификата и когда он истекает. Наша бесплатная проверка SSL-сертификата покажет согласованный протокол, набор шифров, срок действия и цепочку доверия за пару секунд — без установки утилит. Это быстрый способ подтвердить, что после правок ошибка ERR_SSL_VERSION_OR_CIPHER_MISMATCH устранена.
Если после исправления TLS сайт всё равно не открывается, проверьте доступность сайта и HTTP-заголовки: сервер может отвечать ошибкой уже после успешного рукопожатия, и тогда причина в другом месте.
Полезные смежные материалы: исправление ERR_SSL_PROTOCOL_ERROR, почему падает SSL-рукопожатие и сравнение TLS 1.3 и TLS 1.2.
Частые вопросы
Почему ошибка появилась внезапно на работавшем сайте?
Скорее всего, обновился браузер и отключил устаревший протокол или шифр, на котором держался ваш сервер. Chrome и Firefox постепенно убирают TLS 1.0/1.1 и слабые шифры. Сервер, который вчера работал, сегодня оказался несовместим. Обновите конфигурацию до TLS 1.2/1.3 с современными cipher suites — и доступ восстановится. Вторая частая причина — замена сертификата на ECDSA без добавления ECDSA-шифров в конфиг.
Это проблема сервера или моего компьютера?
Проверьте сайт с другого устройства и через мобильный интернет. Если ошибка у всех — виноват сервер: старый TLS или слабые шифры. Если только у вас — причина локальная: устаревший браузер, антивирус с HTTPS-сканированием, неверное системное время или корпоративный прокси. Таблица в статье поможет точно локализовать источник.
Почему сайт казначейства или ЕИС пишет «неподдерживаемый протокол»?
Потому что этот ресурс работает по TLS с ГОСТ-шифрованием, а обычные браузеры его не поддерживают. Нужны криптопровайдер (как правило, КриптоПро CSP) и браузер с поддержкой ГОСТ TLS, например Яндекс Браузер с включённой настройкой шифрования по ГОСТ. Обновление Chrome тут не поможет.
Нужно ли оставлять поддержку TLS 1.0 и 1.1 для старых клиентов?
Нет. TLS 1.0 и 1.1 официально устарели (RFC 8996) и небезопасны. Оставлять их — значит держать открытой уязвимость ради ничтожной доли устройств. Современные ОС и браузеры давно поддерживают TLS 1.2. Настройте TLS 1.2 и 1.3 — этого достаточно для всех актуальных клиентов без ущерба безопасности.
Как понять, какие шифры предлагает мой сервер?
Используйте команду openssl s_client -connect host:443 -tls1_2 и смотрите строку Cipher в выводе, или nmap --script ssl-enum-ciphers -p 443 host для полного списка, либо запустите онлайн-проверку на странице /ssl. Она покажет согласуемые наборы шифров, версию протокола и оценку безопасности конфигурации — без установки инструментов на компьютер.
Помогает ли перевыпуск сертификата?
Только если исходная проблема была в самом сертификате — повреждён, неверный формат ключа или несоответствие типа (ECDSA против RSA). В большинстве случаев ERR_SSL_VERSION_OR_CIPHER_MISMATCH вызвана настройками протокола и шифров, а не сертификатом, поэтому сначала исправьте ssl_protocols и ssl_ciphers, а перевыпуск оставьте на крайний случай.