Skip to content
EN
← Все статьи

ERR_SSL_VERSION_OR_CIPHER_MISMATCH: что значит и как исправить

Браузер с ошибкой несовпадения версий SSL и терминал с проверкой TLS

Ошибка 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, OperaERR_SSL_VERSION_OR_CIPHER_MISMATCH, «Клиент и сервер поддерживают разные версии протокола SSL или набора шифров»Нет общей версии TLS или общего шифра
Яндекс Браузер«На сайте используется неподдерживаемый протокол»То же несовпадение; на госсайтах часто означает, что ресурс требует ГОСТ TLS
FirefoxSSL_ERROR_NO_CYPHER_OVERLAPНет ни одного общего набора шифров
FirefoxSSL_ERROR_UNSUPPORTED_VERSIONСервер предлагает только устаревшую версию протокола (TLS 1.0/1.1)
Safari«Safari не удаётся установить безопасное соединение с сервером»Общее сообщение о сбое TLS, причину уточняют проверкой сервера
ChromeERR_SSL_PROTOCOL_ERROR, «Сайт отправил недействительный ответ»Сбой посреди рукопожатия: обрыв, неверный ответ сервера, вмешательство прокси
ChromeNET::ERR_CERT_DATE_INVALIDСертификат просрочен или неверное время на компьютере
ChromeNET::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. Отключить эту проверку в браузере нельзя, да и не нужно: нужен браузер, который умеет ГОСТ.

  1. Установите криптопровайдер, который требует ресурс (обычно КриптоПро CSP), и плагин для работы с электронной подписью, если он указан в инструкции сервиса.
  2. Откройте сайт в браузере с поддержкой ГОСТ TLS. В Яндекс Браузере это отдельная настройка в разделе «Системные» — подключение к сайтам, использующим шифрование по ГОСТ (для неё нужен установленный КриптоПро CSP). Есть и сборки Chromium с поддержкой ГОСТ, например Chromium-Gost.
  3. Сверьтесь с инструкцией самого ресурса. Казначейство и операторы госсистем публикуют перечень поддерживаемых браузеров и версий криптопровайдера — он важнее общих советов.
  4. Перезапустите браузер после установки криптопровайдера и смены настройки: сессия 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 нет вовсе — вот и причина ошибки.

Как исправить в браузере

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

  1. Обновите браузер и ОС. Старые версии Chrome, Firefox или устаревшая Windows/Android могут не поддерживать современные шифры. В Chrome версия и обновление — в меню «Справка» → «О браузере Google Chrome».
  2. Очистите SSL-состояние и кэш. В Windows: «Свойства браузера» → «Содержание» → «Очистить SSL». Перезапустите браузер.
  3. Проверьте дату и время. Неверное системное время ломает TLS на многих сайтах — синхронизируйте по NTP. В Windows это делает команда w32tm /resync в командной строке от имени администратора.
  4. Проверьте HTTPS-сканирование антивируса. Kaspersky, ESET, Avast и другие вклиниваются в TLS и могут навязывать несовместимые шифры. Для проверки временно выключите проверку защищённых соединений; если причина в ней, обновите антивирус, а не оставляйте защиту выключенной.
  5. Проверьте корпоративный прокси. Прокси с SSL-инспекцией в офисной сети — частая причина: он сам соединяется с сайтом по своим правилам. Сравните поведение с домашней или мобильной сетью и сообщите администратору сети.
  6. Попробуйте режим инкогнито. Это исключит влияние расширений браузера.

Если проблема на конкретном госресурсе, переходите к разделу про ГОСТ выше: там обычный браузер не поможет ни после обновления, ни после очистки кэша.

Как отключить ошибку 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, а перевыпуск оставьте на крайний случай.

Источники

Проверьте ваш сайт прямо сейчас

Проверить SSL своего сайта →
Другие статьи: SSL/TLS
SSL/TLS
Сертификат Минцифры: как установить и вернуть доступ к банкам
31.08.2026 · 4 334 просм.
SSL/TLS
SSL Handshake Failed: причины ошибки и пошаговая диагностика
15.04.2026 · 3 213 просм.
SSL/TLS
Бесплатный SSL через Let's Encrypt: certbot за 10 минут
15.04.2026 · 2 041 просм.
SSL/TLS
Подключение не защищено: что значит и как исправить ошибку
23.09.2026 · 1 835 просм.