Ошибка ERR_SSL_VERSION_OR_CIPHER_MISMATCH: причины и решение
Браузер не может установить защищённое соединение: как найти и исправить устаревшие версии TLS, несовместимые шифры, отсутствие сертификата и неверные настройки виртуального хоста.
Руководства · 1 мин чтения
Если браузер сообщает «Не удаётся установить защищённое соединение с этим сайтом» и показывает ERR_SSL_VERSION_OR_CIPHER_MISMATCH, браузер и сервер не смогли договориться об общем формате защищённой связи (версия TLS и набор шифров). Чаще всего проблема на стороне сервера, и её можно исправить.
Возможные причины
| Причина | Пояснение |
|---|---|
| Устаревшие версии TLS | Сервер предлагает только TLS 1.0/1.1; современные браузеры требуют минимум TLS 1.2 |
| Устаревшие наборы шифров | Шифры вроде RC4 и 3DES, которые считаются небезопасными |
| SSL не установлен | Для домена нет сертификата; сервер отдаёт сертификат другого домена |
| Неверный порт / виртуальный хост | Порт 443 отвечает обычным HTTP вместо HTTPS или SSL не включён |
| Несоответствие CDN/прокси | Режим SSL между CDN и исходным сервером не совпадает |
| Очень старый клиент | Старая ОС/браузер не распознают новые сертификаты и шифры |
1. Выясните, проблема у вас или на сервере
- Откройте сайт в другом браузере и на другом устройстве. Если проблема только на старом устройстве, нужно обновить клиент.
- Убедитесь, что системное время верное: неверные часы ломают защищённые соединения.
2. Проверьте сервер из командной строки
openssl s_client -connect yourdomain.com:443 -servername yourdomain.com
openssl s_client -connect yourdomain.com:443 -servername yourdomain.com -tls1_2
Если соединение не устанавливается или сертификат не отображается, SSL настроен неверно. Онлайн-сервисы проверки SSL подробно показывают поддерживаемые версии TLS и шифры.
3. Если у вас хостинг
- В панели управления хостингом убедитесь, что для домена установлен SSL-сертификат; если нет — получите бесплатный сертификат.
- Убедитесь, что в сертификат входят и адрес с
www, и без него. - Проверьте, что DNS-запись домена указывает на нужный сервер (см. DNS-записи).
4. Если вы администрируете сервер сами
Современная конфигурация предлагает только TLS 1.2 и 1.3.
Nginx:
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers off;
Apache:
SSLProtocol -all +TLSv1.2 +TLSv1.3
Проверьте конфигурацию и перезагрузите службу:
sudo nginx -t && sudo systemctl reload nginx
sudo apachectl configtest && sudo systemctl reload apache2
Убедитесь также, что в блоке сервера для 443 есть listen 443 ssl; (Nginx) либо <VirtualHost *:443> и SSLEngine on (Apache). Если используете обратный прокси, Caddy, автоматически управляющий сертификатами, устраняет большинство таких ошибок.
5. Если используется CDN или прокси
Выберите режим SSL в CDN в соответствии с исходным сервером: если у него валидный сертификат, используйте режим с полной проверкой, иначе сначала установите сертификат на исходном сервере. Если к исходному серверу тоже обращаются по HTTPS, держите его версии TLS актуальными, как описано выше.
6. Проверьте продление сертификата
Просроченный сертификат даёт другую ошибку, но если автоматическое продление не удалось, сервер может отвечать старым или отсутствующим сертификатом. Если вы используете бесплатный сертификат, убедитесь, что DNS домена верен и порты 80/443 открыты.
Всё ещё не решено?
Создайте обращение, указав домен, скриншот ошибки и вывод openssl s_client.