Автопродление SSL: renew, timer и dry-run

Сертификат «вроде стоит». Перед отпуском на проекте прогоняем dry-run — иначе через 90 дней звонок «браузер пишет NET::ERR_CERT_DATE_INVALID».

Если SSL ещё не ставили: Let's Encrypt с нуля →

Как работает renew

Certbot сам не продлевает каждый день. Обычно:

  • запускается по systemd timer или cron (2 раза в сутки);
  • продлевает только сертификаты, у которых осталось меньше ~30 дней;
  • при успехе перезагружает nginx/apache (если так настроено).
sudo certbot renew
sudo certbot renew --dry-run
--dry-run — пробный прогон без записи нового сертификата. Делайте перед отпуском и после смены nginx/DNS.

Проверить, что timer/cron жив

Ubuntu / Debian (часто после apt install certbot):

systemctl list-timers | grep -i certbot
systemctl status certbot.timer --no-pager

Если timer нет — cron:

sudo crontab -l
# типичная строка (пример):
# 0 */12 * * * certbot renew --quiet

Логи:

sudo journalctl -u certbot.service -n 50 --no-pager
# или
sudo tail -50 /var/log/letsencrypt/letsencrypt.log

Типичные поломки renew

  • Порт 80 занят / закрыт — http-01 challenge не проходит (firewall, другой процесс на 80).
  • Webroot / путь в nginx — после миграции сайта challenge 404.
  • DNS уехал — A-запись больше не на этот сервер.
  • Rate limit LE — слишком много неудачных попыток; подождать и не долбить force-renewal.
  • Нет hook на reload — сертификат обновился на диске, nginx отдаёт старый — нужен nginx -s reload в deploy-hook.
# пример hook (осторожно на проде — сначала dry-run)
sudo certbot renew --dry-run --deploy-hook "systemctl reload nginx"

Чеклист перед отпуском (5 минут)

  1. sudo certbot certificates — дни до конца > 14.
  2. sudo certbot renew --dry-run — без ошибок.
  3. Timer или cron — active / строка есть.
  4. Снаружи: site-check — HTTPS 200, дни SSL.

Страховка: мониторинг

Даже с идеальным cron renew может сломаться через месяц (сменили DNS, закрыли 80, переехали на другой VPS). Внешний мониторинг видит срок сертификата снаружи и шлёт алерт за N дней — пока ещё есть время починить, а не после звонка клиента.

Подробно: если renew не сработал — что даёт мониторинг →

Честно про Mediops

Мы не подменяем certbot. Алерт по SSL и доступности — снаружи, по вашему URL. Email на free; Telegram и MAX — с тарифа «Старт».

Узнать о просрочке SSL до клиента

3 сайта бесплатно, алерты по сроку сертификата и доступности.