Сертификат SSL истёк: что делать
Истёкший сертификат чинится за десять минут. Но если не найти, почему он не продлился сам, через три месяца всё повторится.
Утром сайт открывается красным экраном: «Подключение не защищено», «Срок действия сертификата истёк». Посетитель видит предупреждение на весь экран, кнопку «Назад» и мелкую ссылку «Дополнительно», по которой никто не нажимает. Для него сайта больше нет.
Хорошая новость в том, что чинится это быстро — обычно за десять минут. Плохая — что без разбора причины через три месяца всё повторится.
Что именно произошло
SSL-сертификат выдаётся на срок. У бесплатных сертификатов Let’s Encrypt это девяносто дней, у платных — год. Когда срок заканчивается, браузер перестаёт доверять соединению и закрывает сайт предупреждением. Сервер при этом продолжает работать как ни в чём не бывало, поэтому мониторинг, который смотрит только на код ответа, аварии не видит.
Сертификат не истекает внезапно: дата окончания известна с момента выпуска. Если он всё-таки истёк, значит, сломалось продление — и чинить надо обе вещи: сначала сертификат, потом продление.
Что делать прямо сейчас
Если сертификат от Let’s Encrypt
Такие сертификаты продлевает программа на сервере — обычно certbot или встроенный механизм панели хостинга. Порядок действий:
- Запустите продление вручную: в панели хостинга — кнопкой перевыпуска, на своём сервере — командой продления certbot.
- Если команда завершилась ошибкой, прочитайте её: это и есть причина, по которой продление не сработало само.
- Перезагрузите веб-сервер. Новый сертификат лежит на диске, но nginx или Apache продолжают отдавать старый, пока их не перезапустят.
- Проверьте результат снаружи: откройте сайт в приватном окне или воспользуйтесь онлайн-проверкой сертификата.
Если сертификат платный
Закажите перевыпуск у того же удостоверяющего центра или у реселлера, через которого покупали. Сертификаты с проверкой домена выдают за минуты, с проверкой организации — до нескольких дней. Если ждать нельзя, на время выпуска поставьте бесплатный сертификат Let’s Encrypt: сайт откроется сразу, а платный заменит его, когда будет готов.
Если сайт за CDN или прокси
Сертификат может отдавать не ваш сервер, а CDN — тогда продлевать его нужно там. Посмотрите, кто выдал сертификат, который видит браузер: если это не тот, что стоит у вас на сервере, значит, сайт открывается через посредника.
Почему не сработало автопродление
Автопродление почти никогда не отключают специально. Оно ломается тихо, и причин всего несколько.
Сайт переехал. Сертификат выпускали на старом сервере, задание продления осталось там же. Новый сервер о нём не знает.
Изменился DNS или закрылся порт. Let’s Encrypt проверяет, что домен ваш, запросом к сайту по порту 80 или записью в DNS. Если после правок порт закрыт, редирект ведёт не туда или DNS смотрит на другой адрес, проверка не проходит и сертификат не выпускается.
Потерялся перезапуск веб-сервера. Сертификат продлился, но сервер его не перечитал. На диске новый, клиентам отдаётся старый — и в какой-то день он истекает.
Сломалась оплата. У платного сертификата продление — это покупка. Карта истекла, письмо о неудачном списании ушло на ящик, который никто не читает.
Во всех четырёх случаях программа продления отработала с ошибкой в журнал, и этот журнал никто не открывал.
Как не допустить в следующий раз
Проверять нужно не задание продления, а результат: какой сертификат сайт отдаёт прямо сейчас и сколько дней ему осталось. Это единственный показатель, который не врёт, — он одинаково ловит сломанный certbot, забытый перезапуск, переезд и неоплаченный заказ.
Практический порог — тридцать дней. Let’s Encrypt начинает продление за месяц до конца срока, поэтому если за тридцать дней до окончания сертификат всё ещё старый, автопродление уже не сработало, и у вас есть месяц, чтобы спокойно разобраться. Для платных сертификатов запас стоит брать больше: выпуск с проверкой организации идёт до недели.
Это делает мониторинг SSL: раз в сутки смотрит на сертификат сайта и присылает предупреждение, когда до окончания остаётся меньше порога. Истёкший сертификат — одна из немногих аварий, о которой можно узнать за месяц до того, как она случилась.
Коротко
- Истёкший сертификат закрывает сайт для всех посетителей, хотя сервер работает.
- Чинится перевыпуском и перезапуском веб-сервера, обычно за минуты.
- Причина почти всегда в продлении: переезд, DNS, порт, перезапуск, оплата.
- Следить стоит за датой окончания сертификата, который отдаёт сайт, с предупреждением за тридцать дней.