ERR_SSL_VERSION_OR_CIPHER_MISMATCH: что значит ошибка и как исправить
Чаще всего ошибка появляется в Google Chrome, но похожие сообщения бывают в Edge, Firefox, Safari и мобильных браузерах. У обычного пользователя причина часто в старом браузере, антивирусе, VPN или кэше. У владельца сайта — в SSL, TLS, Cloudflare, Nginx, Apache или настройках хостинга.
Быстрое решение
- Проверьте сайт в другом браузере и на другом устройстве.
- Проверьте дату и время на компьютере или телефоне.
- Обновите браузер до последней версии.
- Очистите кэш браузера и SSL state.
- Отключите VPN, прокси и HTTPS scanning в антивирусе.
- Если вы владелец сайта, проверьте SSL-сертификат.
- Включите на сервере TLS 1.2 и TLS 1.3.
- Отключите SSLv3, TLS 1.0 и TLS 1.1.
- Проверьте режим Cloudflare SSL/TLS, если сайт идёт через Cloudflare.
- Проверьте директивы SSL в Nginx или Apache.
Что означает ERR_SSL_VERSION_OR_CIPHER_MISMATCH
Это ошибка SSL/TLS-соединения. Она появляется, когда браузер и сервер не могут договориться, какую версию протокола и какой набор шифров использовать.
При открытии сайта по HTTPS начинается handshake. Браузер и сервер согласовывают:
- версию TLS;
- набор шифров;
- SSL-сертификат;
- домен сертификата;
- алгоритмы безопасности.
Если сервер предлагает устаревший или неподдерживаемый вариант, браузер обрывает соединение и показывает ошибку.
Как выглядит ошибка
В Chrome сообщение обычно такое:
This site can’t provide a secure connection
ERR_SSL_VERSION_OR_CIPHER_MISMATCH
Похожие формулировки:
Unsupported protocolSecure connection failedSSL_ERROR_NO_CYPHER_OVERLAPERR_SSL_PROTOCOL_ERRORPR_END_OF_FILE_ERRORThe client and server don't support a common SSL protocol version or cipher suite
Если ошибка у всех посетителей — проблема почти точно на стороне сайта. Если только у одного пользователя — чаще виноваты устройство, браузер, антивирус, VPN или сеть.
Основные причины
1. Устаревший SSL/TLS на сервере
Современные браузеры не поддерживают SSLv3, TLS 1.0 и TLS 1.1. Если сервер умеет только эти версии, соединение блокируется. Для актуального сайта нужны TLS 1.2 и TLS 1.3.
2. Неподдерживаемые cipher suites
Cipher suite — набор алгоритмов шифрования HTTPS. Если сервер предлагает только слабые или устаревшие шифры, браузер отказывается подключаться. Так бывает на давно не обновлявшихся OpenSSL, Nginx, Apache или панели хостинга.
3. Неправильно установленный сертификат
- сертификат выпущен для другого домена;
- не установлен intermediate certificate;
- сертификат истёк или повреждён;
- приватный ключ не совпадает с сертификатом;
- сертификат есть только для
www, но не для основного домена; - сервер отдаёт сертификат другого VirtualHost.
4. Ошибка в Nginx
Часто виноваты ssl_protocols, ssl_ciphers, listen 443 ssl или неверный путь к сертификату.
Устаревший вариант:
ssl_protocols SSLv3 TLSv1 TLSv1.1;
Рабочий вариант:
ssl_protocols TLSv1.2 TLSv1.3;
5. Ошибка в Apache
Проблема может быть в SSLProtocol, SSLCipherSuite, SSLEngine или VirtualHost на порту 443.
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
6. Неверный режим Cloudflare
- на origin нет валидного сертификата;
- включён Full (strict), а сертификат origin недействителен;
- Cloudflare ходит на origin по HTTPS, но порт 443 закрыт;
- сервер поддерживает только старые версии TLS;
- DNS указывает на неправильный IP;
- на origin стоит сертификат другого домена.
7. Старый браузер или ОС
Очень старые Windows, Android, корпоративные системы и встроенные браузеры могут не поддерживать современные TLS и шифры. Тогда ошибка бывает только у части пользователей.
8. Антивирус перехватывает HTTPS
Проверка зашифрованного трафика вставляет свой сертификат между браузером и сайтом. Если она работает с ошибкой, появляется SSL-сбой. Настройки часто называются HTTPS scanning, SSL scanning, Web Shield или Scan secure traffic.
9. VPN, прокси или корпоративная сеть
VPN и прокси меняют маршрут, фильтруют HTTPS или используют устаревшие TLS-настройки. В корпоративных сетях трафик иногда идёт через внутренний фильтр, который ломает сертификат или набор шифров.
10. Неправильный DNS или старый IP
После миграции домен может указывать на старый сервер, где SSL уже не работает. Отдельно проверьте AAAA: A-запись может вести на новый сервер, а IPv6 — на старый без сертификата.
Как исправить ошибку пользователю
1. Другой браузер
Откройте сайт в Chrome, Firefox, Edge или Safari. Если ошибка только в одном браузере, смотрите кэш, расширения и его настройки.
2. Обновите браузер
В Chrome откройте chrome://settings/help, установите обновление и перезапустите браузер.
3. Дата и время
Неверная дата ломает проверку сертификата. Включите автоматическую синхронизацию даты, времени и часового пояса, затем перезапустите браузер.
4. Очистите кэш
В Chrome: Настройки → Конфиденциальность и безопасность → Очистить данные браузера. Удалите cookies и кэшированные файлы, затем закройте браузер полностью.
5. Очистите SSL state в Windows
- Откройте Internet Options.
- Вкладка Content.
- Clear SSL state.
- Перезапустите браузер.
6. Отключите расширения
На странице chrome://extensions/ временно выключите VPN, прокси, блокировщики рекламы и security-расширения.
7. Отключите VPN и прокси
Windows: Настройки → Сеть и Интернет → Прокси. macOS: System Settings → Network → Wi-Fi → Details → Proxies.
8. HTTPS scanning в антивирусе
Не отключайте антивирус целиком. Временно выключите только проверку HTTPS/SSL. Если сайт открылся, обновите антивирус или поправьте его настройки.
9. Другая сеть
Откройте сайт через мобильный интернет. Если так работает, а по Wi-Fi нет, причина в роутере, провайдере, корпоративной сети или DNS.
10. Сбросьте DNS-кэш
Windows:
ipconfig /flushdns
macOS:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
Как исправить ошибку владельцу сайта
1. Проверьте сертификат
- срок действия;
- домен, для которого он выпущен;
- покрытие www и основного домена;
- полная цепочка;
- совпадение ключа и сертификата;
- какой сертификат реально отдаёт сервер.
Для Let’s Encrypt:
sudo certbot certificates
2. TLS 1.2 и 1.3 в Nginx
server {
listen 443 ssl http2;
server_name example.com www.example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
root /var/www/example.com;
index index.php index.html;
}
sudo nginx -t
sudo systemctl reload nginx
3. Шифры в Nginx
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers off;
Не копируйте случайные cipher-наборы из старых инструкций: они часто уже несовместимы с текущими браузерами.
4. TLS в Apache
Конфиг обычно лежит в /etc/apache2/sites-enabled/, /etc/apache2/mods-enabled/ssl.conf или /etc/httpd/conf.d/ssl.conf.
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /var/www/example.com/public_html
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
</VirtualHost>
sudo apachectl configtest
sudo systemctl reload apache2
5. Порт 443
sudo ss -tulpn | grep :443
sudo ufw allow 443/tcp
sudo ufw reload
Также проверьте firewall и security groups у VPS-провайдера.
6. Режим Cloudflare
Путь: Cloudflare → SSL/TLS → Overview.
- Full — если на origin есть SSL, но он нестрогий;
- Full (strict) — если сертификат origin валидный.
Flexible при уже настроенном HTTPS на сервере часто даёт редирект-петлю или конфликт SSL. Full (strict) без валидного сертификата на origin тоже ломает соединение.
7. Minimum TLS Version
Для современного сайта нормальный минимум — TLS 1.2. Слишком высокий порог отрежет старые браузеры, слишком низкий ухудшает безопасность.
8. DNS
dig example.com A
dig www.example.com A
dig example.com AAAA
Если AAAA ведёт на старый сервер без SSL, часть пользователей получит ошибку.
9. Не тот сертификат
На одном сервере несколько сайтов часто отдают чужой сертификат из-за неверного server_name или VirtualHost. Проверьте дубли конфигов, default server и старые SSL-файлы.
10. Перевыпуск сертификата
sudo certbot --nginx -d example.com -d www.example.com
sudo certbot --apache -d example.com -d www.example.com
После выпуска проверьте конфиг и очистите кэш CDN.
Ошибка в WordPress
Сам WordPress эту ошибку почти не вызывает. Причина обычно на уровне SSL, хостинга, Cloudflare, Nginx или Apache. Всё же проверьте:
- в Настройки → Общие оба URL начинаются с
https://; - нет конфликта SSL-плагина с Cloudflare;
- нет лишних редиректов в
.htaccess; - не включены сразу несколько HTTPS-редиректов;
- очищен кэш сайта;
- после миграции не остались старые домены.
Ошибка после подключения Cloudflare
- A-запись указывает на правильный IP.
- На origin установлен сертификат.
- Порт 443 открыт.
- Режим Full или Full (strict).
- Minimum TLS Version не завышен.
- Сервер поддерживает TLS 1.2 или 1.3.
- Кэш Cloudflare очищен.
Для проверки можно временно выключить проксирование (серое облако). Если ошибка остаётся — проблема на origin. Если исчезает — смотрите настройки Cloudflare.
Ошибка после миграции
- A- и AAAA-записи;
- сертификат на новом сервере;
- HTTPS-блок Nginx или Apache;
- порт 443;
- IP в Cloudflare;
- старые редиректы;
- кэш браузера и CDN.
Дополнительная диагностика
Версия OpenSSL:
openssl version
Логи Nginx:
sudo tail -n 100 /var/log/nginx/error.log
Логи Apache:
sudo tail -n 100 /var/log/apache2/error.log
Поиск дублей конфига:
sudo grep -R "example.com" /etc/nginx/
sudo grep -R "example.com" /etc/apache2/
Если браузер получает сертификат другого сайта, проверьте default server на порту 443 (listen 443 ssl default_server;). На shared-хостинге TLS часто задаётся в панели: SSL/TLS, Security, Advanced SSL. Если доступа нет — пишите в поддержку хостинга.
Чего не стоит делать
- Не включайте SSLv3, TLS 1.0 или TLS 1.1 ради старых браузеров.
- Не отключайте HTTPS на рабочем сайте без необходимости.
- Не копируйте cipher-наборы из устаревших инструкций.
- Не меняйте DNS, SSL, Cloudflare и конфиги одновременно.
- Не оставляйте Flexible, если сервер уже работает по HTTPS.
- Не удаляйте сертификаты, если не можете сразу перевыпустить их.
Как не допустить ошибку снова
- Используйте TLS 1.2 и TLS 1.3.
- Отключите SSLv2, SSLv3, TLS 1.0 и TLS 1.1.
- Обновляйте сервер, OpenSSL, Nginx и Apache.
- Следите за сроком сертификата и полной цепочкой.
- Проверяйте SSL после миграции и после подключения CDN.
- Не держите старые SSL-конфиги в активных сайтах.
- Не дублируйте HTTPS-редиректы в нескольких местах.
Когда писать в поддержку хостинга
- нет доступа к SSL/TLS-настройкам;
- нельзя изменить Nginx или Apache;
- сертификат не ставится через панель;
- ошибка у всех пользователей;
- после включения HTTPS сайт перестал открываться;
- непонятны сообщения в логах.
Приложите домен, скрин ошибки, время появления, данные о Cloudflare и последнее изменение SSL или хостинга.
FAQ
Что значит ERR_SSL_VERSION_OR_CIPHER_MISMATCH?
Браузер и сервер не согласовали безопасное HTTPS-соединение. Обычно виноваты устаревший TLS, неподдерживаемые шифры, неверный сертификат или настройки Cloudflare.
Как быстро исправить ошибку?
Пользователю: обновить браузер, проверить дату, очистить кэш, отключить VPN и HTTPS-сканирование антивируса. Владельцу: проверить сертификат, TLS 1.2/1.3, порт 443, Nginx или Apache и Cloudflare.
Почему ошибка только в Chrome?
Chrome строже блокирует старые TLS и слабые шифры. Также причина может быть в кэше, расширениях или SSL state именно этого браузера.
Может ли Cloudflare вызвать эту ошибку?
Да. Неверный SSL/TLS mode, недействительный origin-сертификат, закрытый порт 443, неправильный IP или слишком высокая Minimum TLS Version дают ту же ошибку.
Какие версии TLS должны быть включены?
Для современного сайта — TLS 1.2 и TLS 1.3. SSLv3, TLS 1.0 и TLS 1.1 лучше отключить.
Вывод
ERR_SSL_VERSION_OR_CIPHER_MISMATCH почти всегда связан с несовместимостью SSL/TLS между браузером и сервером. Пользователю стоит начать с браузера, даты, кэша, VPN и антивируса. Владельцу сайта — с TLS 1.2/1.3, сертификата, Nginx или Apache, порта 443, DNS и Cloudflare.
Старые протоколы ради обхода ошибки включать не нужно. Правильное решение — обновить конфигурацию, проверить сертификат и убедиться, что сервер отдаёт современное HTTPS-соединение.
