Let’s Encrypt отключает письма об истечении сертификатов: что делать DevOps

Let’s Encrypt с 4 июня 2025 года перестаёт слать письма об истечении SSL/TLS-сертификатов. Официальная позиция: автоматизация уже норма, хранить миллионы email ради напоминаний накладно и лишний privacy-риск, инфраструктуру уведомлений хотят упростить.

Для DevOps это не «конец света», а сигнал: если продление и мониторинг держатся на письме от CA, процесс хрупкий. Ниже – зачем LE это делает и что настроить у себя.

Почему отключают expiration emails

1. Автопродление стало стандартом

Certbot, acme.sh, lego, встроенные ACME-клиенты у reverse-proxy и панели хостинга уже сами обновляют сертификаты. Письмо «сертификат скоро истечёт» для нормально настроенного контура почти всегда шум.

2. Конфиденциальность

Чтобы слать напоминания, нужно годами хранить адреса и привязку к доменам. LE давно позиционирует себя как минималистичный CA: меньше персональных данных – меньше поверхность атаки и compliance-головной боли.

3. Ресурсы и простота

Массовая почтовая рассылка – отдельный сервис, очереди, bounces, abuse. Отказ от него освобождает мощность и убирает ещё одну точку отказа в стеке LE.

Что сделать в своей инфраструктуре

1. Автоматическое продление

Базовый вариант с Certbot: тихий renew по cron или systemd timer.

certbot renew --quiet

Пример cron (каждый день в 03:00):

0 3 * * * certbot renew --quiet

После успешного renew обычно нужен reload/restart web-сервера (deploy-hook у certbot удобнее ручного restart «на всякий случай»).

2. Свой мониторинг сроков

Не ждите письма от CA. Проверяйте сертификат сами:

  • Zabbix / Nagios / Icinga – item или check «дней до notAfter»
  • Prometheus + blackbox/ssl exporter – метрики и алерты в Alertmanager
  • Простая проверка с хоста – openssl + cron + Telegram/email

Быстрый ручной контроль:

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

3. Внешние мониторы (если удобно)

Можно переложить «напомнить за N дней» на SaaS: UptimeRobot, Better Stack, специализированные SSL-мониторы, Red Sift Certificates и аналоги. Смысл тот же: алерт в ваш канал, а не зависимость от почты LE.

4. Документация и runbook

Уберите из внутренних wiki фразы вроде «придёт письмо от Let’s Encrypt». Добавьте: где крутится ACME-клиент, какой timer/cron, куда падают логи renew, как выглядит аварийный сценарий.

5. Аварийное продление

На случай сбоя авто-renew (rate limit, DNS, firewall, упавший challenge):

certbot renew --force-renewal
systemctl reload nginx

--force-renewal используйте осознанно: LE rate limits никто не отменял. Лучше починить причину failed renew, а force оставить для инцидента.

Итог

LE убирает костыль «мы вам напомним». Нормальный контур уже выглядит так: ACME-клиент + timer, проверка notAfter в мониторинге, алерт в on-call, runbook на force renew. Если так и было – почти ничего не меняется. Если продление держалось на почте – самое время это починить до июня 2025.

  • Автопродление, а не ручной клик раз в 60-90 дней
  • Мониторинг срока действия в своей системе
  • Внешние алерты по желанию
  • Актуальный runbook для команды

Источники и ссылки


Комментарии загружаются…