Let's Encrypt: как работает бесплатный SSL и где подводные камни 90-дневного цикла
5 мин чтения
Let's Encrypt: как работает бесплатный SSL и где подводные камни 90-дневного цикла

Let's Encrypt: как работает бесплатный SSL и где подводные камни 90-дневного цикла

Let's Encrypt раздаёт SSL-сертификаты бесплатно и в автоматическом режиме — благодаря ему HTTPS стал нормой даже для домашних проектов. Но у бесплатного сертификата есть цена: 90-дневный срок жизни и полная ставка на автоматику, которая обязана срабатывать каждые пару месяцев без сбоев. А с июня 2025 года Let's Encrypt ещё и перестал присылать письма об истечении. Разбираем, как всё устроено и как не узнать о проблеме от посетителей.

Как это работает: ACME и три месяца доверия

Let's Encrypt — некоммерческий удостоверяющий центр, запущенный в конце 2015 года с простой идеей: сертификаты должны быть бесплатными и выпускаться роботом, а не менеджером. Робот работает по протоколу ACME: клиент на вашем сервере (чаще всего certbot или acme.sh) доказывает контроль над доменом — выкладывает проверочный файл на сайт (HTTP-01) или создаёт специальную DNS-запись (DNS-01), — и центр тут же выпускает сертификат. Всё занимает секунды, участие человека не предполагается.

Срок жизни такого сертификата — 90 дней, против года у классических платных. Это осознанное решение, а не жадность: короткий срок ограничивает ущерб от украденных ключей и принуждает к автоматизации продления. Штатная схема — клиент сам перевыпускает сертификат за 30 дней до конца срока, и владелец сайта годами не вспоминает о его существовании. Ровно в этом месте и прячется главный риск.

Что меняется в отрасли: сроки будут только короче

Событие Что это значит для владельца сайта
Июнь 2025 — Let's Encrypt прекратил рассылку писем об истечении сертификатов Последняя «страховка для забывчивых» отключена: если автопродление сломалось, напоминать больше некому
2025 — анонс короткоживущих сертификатов Let's Encrypt сроком 6 дней Направление отрасли: автоматика становится не желательной, а единственно возможной
Решение CA/Browser Forum: максимальный срок любых публичных сертификатов поэтапно сокращается — до 47 дней к 2029 году Даже платные «годовые» сертификаты доживают последние годы; продление руками уходит в прошлое во всей отрасли

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

Пять способов, которыми ломается автопродление

1. Умер планировщик. Cron-задачу или systemd-таймер с certbot renew снесли при обновлении, переезде или чистке сервера. Всё выглядит нормальным ровно до 90-го дня.

2. Проверка больше не проходит. HTTP-01 требует, чтобы Let's Encrypt достучался до вашего сайта снаружи по 80-му порту. Закрыли порт файрволом, включили строгий гео-фильтр «только Россия», навесили WAF — и валидатор больше не проходит. Тот же класс проблем, что в истории про WAF и мониторинг: защита отрезала легитимного робота.

3. Сертификат обновился, сервис — нет. Файлы на диске свежие, но nginx никто не перезагрузил, и он продолжает отдавать старый сертификат из памяти до самого истечения. Коварнейший вариант: certbot рапортует об успехе, а сайт падает.

4. DNS-01 и сломанная запись. Wildcard-сертификаты продлеваются через DNS: клиент должен уметь создавать TXT-записи через API вашего DNS-хостинга. Сменили DNS-провайдера или отозвали API-токен — продление молча умерло.

5. Лимиты и внешние сбои. У Let's Encrypt есть лимиты на число выпусков; зацикленный скрипт может их исчерпать, а изредка случаются и сбои на стороне самого центра. Редко, но именно в неудачный день.

# Проверить, что автопродление вообще способно сработать:
certbot renew --dry-run

# Посмотреть, какой сертификат реально отдаёт сервер и до когда он жив:
echo | openssl s_client -connect example.ru:443 -servername example.ru 2>/dev/null | openssl x509 -noout -dates
Проверяйте сертификат, который видит браузер, а не файл на диске

Половина инцидентов с Let's Encrypt — это свежий сертификат в папке и старый в памяти веб-сервера. Поэтому мониторить нужно снаружи: какой сертификат реально отдаётся по 443-му порту и сколько дней ему осталось. Внутренние проверки здесь систематически врут.

Чек-лист надёжного автопродления

Пункт Как проверить Как часто
Планировщик жив systemctl list-timers | grep certbot (или crontab -l) После любых работ на сервере
Продление проходит certbot renew --dry-run без ошибок Раз в месяц и после смены конфигурации
Веб-сервер перечитывает сертификат deploy-hook с reload nginx прописан в конфиге certbot Один раз, но обязательно
Снаружи виден свежий сертификат Внешняя проверка срока по 443-му порту Автоматически, ежечасно
Все поддомены учтены Сертификаты есть для www, api, lk и прочих живых поддоменов При каждом новом поддомене

Первые три пункта — внутренняя гигиена, четвёртый — внешний контур, который ловит всё, что просочилось мимо первых трёх. Именно связка «автоматика внутри + независимый контроль снаружи» делает 90-дневный цикл безопасным: каждый контур страхует слепые зоны другого.

Так платный сертификат надёжнее?

Нет — по части шифрования разницы никакой, а «годовой срок» как страховка от забывчивости доживает последние годы по решению отрасли (см. таблицу). Честная формула такая: Let's Encrypt плюс работающая автоматика плюс внешний контроль срока — это надёжнее, чем платный сертификат с ручным продлением и без контроля. Платные сертификаты сохраняют смысл в специфических случаях — корпоративные требования, OV/EV-валидация организации, страховки, — но для подавляющего большинства сайтов выбор давно сделан: по данным самих браузеров, львиная доля веба сегодня шифруется именно бесплатными автоматическими сертификатами.

Как это устроено в Пруфене

Раз Let's Encrypt больше не напоминает об истечении — напоминать должен ваш мониторинг. Пруфен проверяет SSL-сертификат снаружи, как его видит браузер посетителя: срок действия, цепочку, соответствие домену — с интервалом от 1 часа. Уведомление приходит заранее, пока «сломанное продление» — это задача на пять минут, а не алый экран у всех посетителей. В паре с проверкой домена закрывает оба главных «календарных» риска сайта.

Частые вопросы

Let's Encrypt работает в России? Да: сертификаты выпускаются и продлеваются для доменов в любых зонах, включая .ru и .рф. Сложности возможны на уровне конкретных сетевых ограничений (валидатор должен достучаться до сайта), но сам сервис для российских доменов доступен.

Чем certbot отличается от acme.sh и панельных «кнопок SSL»? Ничем принципиальным — это разные ACME-клиенты одного протокола. Панели хостингов (ispmanager, cPanel и другие) обычно встраивают тот же механизм; надёжность определяется не клиентом, а тем, работает ли продление и перезагружается ли веб-сервер после него.

Почему сертификат «слетает» ровно раз в три месяца? Потому что 90-дневный цикл делает любую поломку периодической: сломанное продление проявляется на 90-й день, затем на 180-й — до тех пор, пока не починят первопричину из списка выше.

Как проверить сертификат прямо сейчас, без терминала? Кликните на замок в адресной строке браузера — там видны срок и издатель. Разовая проверка хороша для диагностики; систематический контроль срока — задача мониторинга, подробнее — в статье о проверке SSL.

Была ли статья полезна?

Начните мониторинг прямо сейчас

Бесплатный тариф — до 5 проверок. 150 ₽ на баланс при регистрации.

Создать аккаунт