Ошибка SSL — что значит и как исправить
Ошибка SSL — это когда браузер пытается установить HTTPS-соединение, но проверка сертификата проваливается. Браузер показывает большую красную предупреждающую страницу: «Ваше подключение не защищено», «NET::ERR_CERT_AUTHORITY_INVALID» и подобные. Пользователи обычно пугаются и уходят.
- 🚨 Браузер показывает «Не защищено» или предупреждение с красным замочком
- 🔍 Причина — проблема с SSL-сертификатом сайта
- 🛠️ Чаще всего: истёк, неправильное доменное имя, или сломана цепочка
- ⏰ Самая частая причина — забыли продлить (избегайте этого через Мониторинг SSL)
Частые причины
Section titled “Частые причины”1. Сертификат истёк
Section titled “1. Сертификат истёк”Сертификат был выдан, например, до 1 мая. Сегодня 5 мая. Браузер: «не доверяю».
Это самая частая причина SSL-ошибок. Let’s Encrypt живёт 90 дней — забыл продлить, получи красную страницу.
2. Сертификат на другой домен
Section titled “2. Сертификат на другой домен”У вас сайт example.com, а сертификат выдан на othersite.ru. Браузер: «имена не совпадают».
Бывает при:
- Переезде между хостингами
- Использовании дефолтного сертификата хостера
- Неверной настройке virtual hosts в nginx
3. Самоподписанный сертификат
Section titled “3. Самоподписанный сертификат”Сертификат не от доверенного центра (Let’s Encrypt, Comodo и т.п.), а сгенерирован самостоятельно. В тестовой среде нормально, в проде — нет.
4. Сломана цепочка сертификатов
Section titled “4. Сломана цепочка сертификатов”Браузер получает только сам сертификат вашего домена, но не получает промежуточные сертификаты от центра сертификации. Без цепочки браузер не может проверить подпись.
Это самая коварная ошибка: в Chrome может работать (он добирает intermediate сам), а в Safari — нет.
5. Сертификат отозван (revoked)
Section titled “5. Сертификат отозван (revoked)”Центр сертификации (CA) отозвал ваш сертификат — например, после компрометации приватного ключа. Браузер проверяет через OCSP/CRL и блокирует.
6. Слабые шифры
Section titled “6. Слабые шифры”Сервер настроен на устаревшие cipher suites (SSL 3.0, TLS 1.0, RC4). Современные браузеры считают это небезопасным и отказывают.
7. Несоответствие времени
Section titled “7. Несоответствие времени”На клиенте или сервере серьёзно сбито время. Сертификат «из будущего» или «уже истёкший» с точки зрения клиента.
8. HSTS pin несоответствие
Section titled “8. HSTS pin несоответствие”Сайт использует HSTS Pinning, и подменили сертификат на другой (даже валидный, но другой). Браузер: «не тот сертификат который я ожидал».
Как диагностировать
Section titled “Как диагностировать”1. Открыть openssl s_client:
openssl s_client -connect example.com:443 -servername example.comПокажет:
- Цепочку сертификатов
- Срок действия (
notBefore,notAfter) - Какие алгоритмы используются
2. Проверить через SSL Labs:
ssllabs.com/ssltest — комплексный аудит вашего SSL. Покажет оценку (A+/B/C/F), все проблемы, что починить.
3. Простой curl:
curl -v https://example.comВ выводе будут подробности SSL handshake.
4. Проверить срок сертификата:
echo | openssl s_client -servername example.com -connect example.com:443 2>/dev/null | openssl x509 -noout -datesПокажет notBefore и notAfter дату.
Как исправить
Section titled “Как исправить”Сценарий A: сертификат истёк
Выпустить новый. Через наш бесплатный генератор или через certbot:
sudo certbot renewПосле — перезагрузить веб-сервер:
sudo systemctl reload nginxСценарий B: сертификат на другой домен
Нужно выпустить сертификат именно на ваш домен или с поддержкой нескольких доменов (SAN-сертификат).
В нашем генераторе можно указать несколько доменов через запятую:
example.com, www.example.comСценарий C: сломана цепочка
В nginx используйте fullchain.pem, а не cert.pem:
ssl_certificate /etc/ssl/example.com/fullchain.pem; # ← это правильно# ssl_certificate /etc/ssl/example.com/cert.pem; # ← это сломаноssl_certificate_key /etc/ssl/example.com/privkey.pem;fullchain.pem = cert.pem + chain.pem. С ним браузер получает всё необходимое.
Сценарий D: самоподписанный сертификат
Не использовать в проде. Выпустить настоящий через Let’s Encrypt (бесплатно) — см. Бесплатный SSL-генератор.
Сценарий E: слабые шифры
Обновите конфиг nginx:
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 off;Проверьте через SSL Labs — должны получить A или A+.
Сценарий F: время на сервере сбито
datesudo timedatectl set-ntp truesudo systemctl restart systemd-timesyncdЕсли не разработчик
Section titled “Если не разработчик”Если на вашем сайте красная страница «Не защищено»:
- Не паникуйте — клиенты пугаются, но это лечится за 30 минут
- Если домен на хостинге с автоматическим SSL (Tilda, Bitrix24, многие shared-хостинги) — обратитесь в их техподдержку
- Если у вас обычный VPS — нужен разработчик с SSH-доступом, чтобы выпустить новый сертификат
- Параллельно подключите мониторинг Monisite — мы предупреждаем за 30 дней до истечения сертификата, чтобы такая ситуация больше не повторилась
Чем поможет Monisite
Section titled “Чем поможет Monisite”Просроченный SSL — главная причина «внезапных» падений сайтов. Мониторинг решает это полностью:
- Каждый день проверяем срок ваших сертификатов
- Предупреждаем по 7 порогам (за 30, 20, 14, 10, 7, 5, 3 дней)
- При сломанной цепочке или ошибке handshake — уведомление в Telegram/MAX/email
- Бесплатно
Подробнее: Мониторинг SSL · Бесплатный SSL-генератор.