Как исправить ошибку SSL-сертификата
Предупреждение браузера отпугивает посетителей сразу после входа на сайт, но обычно причина в одной из нескольких простых проблем. Вот как понять, какая у вас, и исправить её.
Определите, какая у вас проблема
Введите домен в SSL Checker или выполните эту команду на любом компьютере с OpenSSL:
openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null | openssl x509 -noout -subject -issuer -dates
В выводе видно, для кого выдан сертификат, кто его выпустил и когда он истекает. Сравните это с разделами ниже.
Срок действия сертификата истёк
Это самая частая причина, и обычно она означает, что автоматическое продление не сработало. Для Let’s Encrypt и Certbot сначала проверьте продление, а затем продлите сертификат:
sudo certbot renew --dry-run
sudo certbot renew
sudo systemctl reload nginx
Если проверка не проходит, обычно причина в том, что порт 80 заблокирован или редирект мешает запросу валидации. Хостинг-платформы продлевают сертификаты сами, поэтому проверьте, что DNS вашего домена по-прежнему указывает на них.
Имя не совпадает
В сертификате должен быть указан точный адрес, который вводят посетители. Сертификат для example.com не покрывает www.example.com, если оба имени не включены. Перевыпустите его с обоими именами:
sudo certbot --nginx -d example.com -d www.example.com
Цепочка сертификатов неполная
Сайт может работать в одних браузерах и не работать в других или на телефонах. Обычно это значит, что сервер не отправляет промежуточный сертификат. В Nginx укажите полную цепочку, а не только сам сертификат:
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
Значок замка пропал или страница предупреждает о смешанном контенте
Сам сертификат в порядке, но страница загружает изображение или скрипт по http://. Откройте консоль браузера, чтобы увидеть файл, и замените адрес на https://. Если сайт по-прежнему отвечает по обычному HTTP, настройте перенаправление и проверьте его в Redirect Checker.
Ошибку видит только один человек
Если SSL Checker проходит, а одно устройство выдаёт ошибку, причина в самом устройстве. Классическая причина — неверно установленное системное время, затем антивирус или корпоративная сеть, которая проверяет трафик.
Предотвратите повтор
- После любых изменений на сервере проверяйте, что автоматическое продление работает, тестовым запуском.
- Поставьте напоминание в календаре или оповещение о доступности до даты истечения срока.
- После исправления домена добавьте заголовки безопасности, например HSTS, но только тогда, когда HTTPS работает везде.