Сайт «не защищён»: истёк срок SSL-сертификата. Как исправить и не допустить повторения

Просроченный SSL пугает посетителей и режет конверсию. Как быстро исправить ситуацию и поставить предупреждения, чтобы она не вернулась.

Страница предупреждения браузера об истёкшем сертификате безопасности

Клиент пишет: «Сайт говорит, что он не защищён». Посетители видят предупреждение на весь экран, формы перестают конвертировать, поисковым роботам может быть трудно дойти до страниц. Когда истёк срок SSL-сертификата, это один из самых заметных сбоев сайта и один из самых избегаемых.

Ниже — как подтвердить проблему, исправить её и сделать так, чтобы она не вернулась.

Шаг 1. Убедитесь, что сертификат действительно истёк

Браузеры показывают ошибки вроде NET::ERR_CERT_DATE_INVALID (Chrome) или «Предупреждение: потенциальная угроза безопасности» (Firefox). Не предполагайте, проверьте даты напрямую:

bash
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null | openssl x509 -noout -dates

Смотрите на notAfter. Если дата в прошлом, сертификат истёк. Если дата в будущем, у вас другая проблема (см. ниже).

Шаг 2. Отсейте похожие ошибки

Не каждая ошибка сертификата — это истечение срока:

  • Неверное имя хоста. Сертификат покрывает example.com, но не www.example.com.
  • Нет промежуточного сертификата. В одних браузерах открывается, в других нет.
  • Отдаётся не тот сертификат. CDN, балансировщик или второй виртуальный хост отвечает старым сертификатом.
  • Неверные часы системы. Если ошибку видит только одно устройство, проверьте на нём дату и время.

Шаг 3. Продлите и установите сертификат

Исправление зависит от того, откуда берётся сертификат.

Let's Encrypt / certbot. Запустите sudo certbot renew и прочитайте ошибку. Чаще всего мешает закрытый порт 80, неверный webroot или учётные данные DNS-challenge. См. certbot renewal failed.

Панель хостинга (cPanel, FastPanel, Plesk). Перевыпустите сертификат или принудительно продлите его в разделе SSL. Если AutoSSL не сработал, панель обычно пишет причину: часто DNS указывает в другое место.

Платный сертификат. При необходимости сгенерируйте новый CSR, пройдите проверку, затем установите новый сертификат и цепочку.

CDN или прокси (Cloudflare и аналоги). Проверьте оба сертификата: краевой, который видят посетители, и исходный между CDN и вашим сервером. Истечь может любой из них.

Шаг 4. Перезагрузите конфигурацию веб-сервера

Частая ловушка: файл сертификата на диске уже обновлён, а сервер всё ещё отдаёт старый из памяти. Перечитайте конфигурацию:

bash
sudo systemctl reload nginx    # or apache2 / httpd

Затем проверьте командой openssl выше, а не только в своём браузере: он может держать старое состояние в кэше.

Шаг 5. Выясните, почему срок истёк

Починить симптом — половина работы. Типичные причины:

  • Автопродление так и не заработало после переезда сервера.
  • Задание cron или таймер удалили.
  • DNS домена изменился, и проверка перестала проходить.
  • Платный сертификат купили один раз, и дату никто не вёл.
  • Сертификат принадлежит поддомену, о котором все забыли.

Запишите причину. Если вы не знаете, почему срок истёк, он истечёт снова.

Профилактика: сделайте срок видимым

Проверяйте снаружи. Смотрите сертификат так, как его видит посетитель: подключаясь к живому домену. Проверки на самом сервере пропускают проблемы на CDN и балансировщиках.

Предупреждайте рано и широко. Сигналы на 30, 14 и 7 дней. Шлите их на общий ящик или в общий канал, а не одному разработчику.

Ведите каждый сертификат. Сюда входят стенды, клиентские поддомены и почтовые серверы. Просроченный сертификат на почте или API ломает вещи тихо.

Не полагайтесь на письма провайдера. Let's Encrypt перестал присылать напоминания об истечении в 2025 году, поэтому пропущенное продление теперь не даёт никакого предупреждения, если вы не следите сами.

Готовьтесь к более коротким срокам. CA/Browser Forum утвердил график, который сокращает максимальную длительность сертификата: сначала до 200 дней (с марта 2026), затем до 100 дней (2027) и до 47 дней (2029). Ручное продление перестанет быть практичным. Автоматизируйте выпуск и проверяйте, что автоматизация работает.

Короткий чек-лист

  • [ ] Подтвердите дату истечения через openssl
  • [ ] Отсейте проблемы имени хоста, цепочки и CDN
  • [ ] Продлите и установите сертификат
  • [ ] Перечитайте конфигурацию веб-сервера
  • [ ] Проверьте снаружи своей сети
  • [ ] Добавьте мониторинг и предупреждения для этого домена
  • [ ] Запишите корневую причину
Предупреждение браузера об истёкшем сертификате безопасности на ноутбуке

Что делать после того, как истёк срок SSL-сертификата

Продление сертификата — середина работы, а не конец. Перечитайте конфигурацию веб-сервера, затем проверьте живой сертификат снаружи машины. Файл на диске с новой датой ничего не даёт, если nginx всё ещё отдаёт старую цепочку из памяти.

Напишите клиенту коротко: сертификат истёк, его продлили, вот новая дата. Без длинного разбора. Им нужно знать, что оплата снова проходит.

Затем запишите дату туда, где её нет на сервере. Панели хостинга, Cloudflare и коробка под столом — все выпускают сертификаты. Если единственная запись — «certbot установлен», следующий сбой будет выглядеть так же, как этот.

Поставьте напоминание на 14 дней, а не на 1 день. Сорвавшийся HTTP-01 в пятницу днём становится понедельничным простоем, если смотреть только накануне истечения. Руководство по самостоятельному мониторингу — запасной контур, когда задание продления молчит.

Если предупреждение было NET::ERR_CERT_DATE_INVALID, проверьте ещё и часы на сервере. Неверное системное время даёт ту же страницу браузера, что и реально истёкший сертификат, и продление её не снимет.

Заметки после случая, когда истёк срок SSL-сертификата

Запишите, на какое имя ругался браузер. www и апекс часто сидят на разных сертификатах. Продлить один, перечитать nginx и оставить второй истёкшим выглядит как «мы починили», пока клиент не откроет другой адрес.

Проверяйте цепочку, а не только дату листового сертификата. Новый лист, подписанный истёкшим промежуточным, всё равно предупреждает. openssl s_client показывает даты, которыми воспользуется браузер.

Если сайт стоит за Cloudflare или другим прокси, сертификат, который видят посетители, может быть не тем, что на вашем origin. Продлевайте тот, что спереди. Сертификат origin может быть действительным, пока истёк краевой.

После исправления сами нажмите на замок на телефоне, который не в офисной сети. Кэш ошибок и внутренний DNS делают офис здоровым на вид.

Затем внесите новую дату в трекер до закрытия тикета. Сбой, который вы только что закрыли, повторится, если единственная запись — тред в Slack.

Если продлённый сертификат всё ещё предупреждает, сравните серийный номер в браузере с серийным номером на диске. Они расходятся, когда ответил не тот виртуальный хост или CDN закэшировал старое рукопожатие. Сбросьте этот кэш, затем перепроверьте из сети вне офиса, прежде чем сказать клиенту, что случай «истёк срок SSL-сертификата» закрыт.

Отдельно проверьте почтовый хост и API, если они на том же имени или на соседнем поддомене. Сайт уже открывается с зелёным замком, а SMTP на mail всё ещё показывает старую дату. Клиент узнает об этом не из браузера, а из писем, которые не уходят.

Запишите, какой именно выпуск починил проблему: панель, certbot, краевой сертификат CDN или ручная установка платного файла. Через три месяца тот же человек может не быть на смене, и «мы как-то продлили» не скажет, какую кнопку нажимать.

Если за время простоя формы не отправлялись, предупредите клиента, что заявки за эти часы могли не дойти. Это одна строка в письме, и она снимает спор «почему лидов не было во вторник».

Вопросы

Сколько времени занимает исправление истёкшего сертификата?

При рабочей автоматизации Let's Encrypt или панели — минуты. При платном сертификате, которому нужна проверка, — от минут до суток и дольше.

Вредит ли истёкший сертификат SEO?

Посетителей останавливает страница предупреждения, и роботы могут не забрать страницы за время простоя. Короткий простой редко оставляет долгий след в позициях, но конверсия страдает сразу.

Можно ли предотвратить истечение SSL одним автопродлением?

Автопродление помогает, но оно может молча сорваться. Сочетайте его с независимым мониторингом.

*Duvento следит за сроком SSL-сертификатов вместе с доменами, хостингом и лицензиями и заранее предупреждает команду. Попробовать.*

Поделиться

X LinkedIn Facebook Telegram