Коротко. Сертификаты Let’s Encrypt действуют 90 дней и в норме обновляются автоматически через certbot или встроенную автоматику хостинга — вручную делать ничего не нужно, если автопродление настроено и работает. Платные сертификаты (DV/OV/EV) выдаются на срок до года и требуют ручного продления: новый CSR или переиспользование старого, повторная проверка (от минут для DV до дней для OV/EV) и установка нового файла на сервер. Сама замена файла и reload веб-сервера при аккуратной последовательности действий занимает 5-10 минут и не создаёт простоя вообще.
Почему сертификаты вообще нужно обновлять
Срок действия — это не техническое ограничение шифрования, а требование браузеров и стандартов индустрии: чем короче срок жизни сертификата, тем быстрее отзываются скомпрометированные ключи и тем меньше риск, что устаревшие данные об организации останутся актуальными в системе доверия. Отсюда разница в сроках: Let’s Encrypt изначально проектировался под короткий цикл в 90 дней именно для того, чтобы продление было полностью автоматическим процессом, а не разовым ручным действием раз в год. Коммерческие сертификаты с 2020 года по правилам CA/Browser Forum не могут выпускаться дольше чем на 398 дней (чуть больше года) — раньше встречались сертификаты на 2-3 года, сейчас такой практики у браузеров-доверителей нет.
Автопродление Let’s Encrypt: что должно работать само
Если сертификат ставился через certbot, при установке автоматически создаётся системная задача (systemd timer или cron), которая дважды в сутки проверяет, не истекает ли сертификат в ближайшие 30 дней, и если да — продлевает его без участия человека. Проверить, что задача действительно есть и работает, можно командой:
sudo certbot renew --dry-run
Флаг --dry-run имитирует полный процесс продления без реальной выдачи нового сертификата — это безопасный способ убедиться, что автоматика не сломана, не тратя лимиты на реальные запросы к Let’s Encrypt. Если команда завершается без ошибок — продление настроено верно и вручную трогать ничего не нужно. Если хостинг обновляет сертификат через собственную панель (cPanel AutoSSL, ISPmanager и аналоги), автоматика там работает по похожему принципу и тоже не требует вмешательства — весь процесс из статьи об установке SSL на разных панелях касается и продления тоже.
Что чаще всего идёт не так и приводит к простою
Простой из-за сертификата почти никогда не случается из-за самого факта истечения срока — он случается из-за того, что автоматика молча перестала работать, а её результат никто не проверял. Три типичных сценария: закрыт порт 80 в файрволе (например, после настройки CDN или смены правил безопасности) — HTTP-01 валидация Let’s Encrypt использует именно этот порт, и без него продление тихо падает с ошибкой в логах, которые никто не читает; домен переехал на другой сервер или сменился DNS, а cron-задача осталась на старом сервере и продолжает пытаться продлить сертификат для домена, который уже не указывает на этот IP; у certbot закончилось место на диске для логов или временных файлов, и задача продления завершается с ошибкой без уведомления владельца сайта. Во всех трёх случаях сертификат тихо истекает, и о проблеме узнают только когда сайт падает в браузерах посетителей — то есть постфактум.
Как обновить сертификат вручную без простоя
Ключевое правило — не удалять старый сертификат до того, как новый полностью установлен и проверен. Порядок действий:
- Получить новый сертификат (для Let’s Encrypt —
certbot renewили ручной запуск с теми же параметрами, для платного — CSR и проверка у центра сертификации). - Разместить новые файлы на сервере рядом со старыми, не перезаписывая их сразу.
- Проверить конфигурацию веб-сервера командой
nginx -t(илиapachectl configtestдля Apache) — она находит синтаксические ошибки до применения. - Обновить пути в конфиге на новые файлы и выполнить
reload, а неrestart— reload подхватывает новый сертификат для новых соединений, не разрывая уже установленные. - Проверить сайт (см. раздел ниже) и только после этого удалить старые файлы сертификата.
Реальный простой возникает не из-за самой смены файла, а из-за ошибки в пути или синтаксисе конфига, которую применили без предварительной проверки — nginx -t перед reload закрывает почти все такие случаи.
Мониторинг: как узнать заранее, а не постфактум
Полагаться на «автоматика работает» без проверки — рискованная стратегия, если сайт зарабатывает деньги. Три рабочих способа подстраховаться: включить email-уведомления от центра сертификации (Let’s Encrypt присылает письмо за 20 и за 7 дней до истечения на указанный при выпуске адрес, если срок почему-то не продлился); подключить внешний сервис мониторинга доступности сайта, который умеет отдельно проверять срок действия SSL-сертификата и слать алерт за 14-30 дней до истечения, а не только следить, отвечает ли сайт на пинг; и раз в квартал вручную запускать certbot renew --dry-run или аналогичную проверку — это занимает минуту и подтверждает, что автоматика жива. Для сайта, который отдан на регулярное обслуживание, эту проверку логично включить в состав технической поддержки, а не держать в голове как разовую задачу.
Чеклист перед и после обновления
Перед обновлением: убедиться, что порт 80 открыт (для HTTP-01 валидации Let’s Encrypt), домен резолвится на текущий сервер, есть доступ к серверу и бэкап текущей рабочей конфигурации. После обновления: проверить срок действия нового сертификата (openssl s_client -connect домен:443 -servername домен | openssl x509 -noout -dates), открыть сайт в режиме инкогнито на нескольких устройствах, убедиться, что nginx -t и лог веб-сервера не показывают ошибок, и только после этого закрывать задачу.
FAQ
Нужно ли вручную продлевать Let’s Encrypt, если всё настроено при установке?
Нет, если автоматика (certbot renew через systemd timer или cron, либо встроенная функция хостинга) настроена и работает — проверить это можно раз в несколько месяцев командой certbot renew --dry-run, не дожидаясь реальной даты истечения.
Что будет, если пропустить продление сертификата?
Сайт останется технически доступным по адресу, но браузер посетителей начнёт показывать полноэкранное предупреждение о просроченном сертификате вместо содержимого страницы — для практических целей это равносильно недоступности сайта для новых посетителей.
Обновление сертификата требует менять DNS-записи?
Обычно нет. DNS меняется только если меняется сервер или IP сайта — сама по себе замена сертификата на том же сервере не затрагивает DNS-настройки домена.
Можно ли обновить платный сертификат без повторной оплаты?
Нет, платный сертификат — это подписка на определённый срок (обычно год), продление на новый период требует новой оплаты и, как правило, повторного прохождения проверки у центра сертификации, хотя обычно уже более быстрого, чем при первом выпуске.
Сколько времени в среднем занимает обновление сертификата целиком?
Для Let’s Encrypt при работающей автоматике — ноль минут, процесс полностью в фоне. Ручное обновление на сервере при уже готовом файле сертификата — 5-10 минут. Для платного сертификата основное время съедает не установка, а ожидание проверки у центра сертификации.
Проверить, работает ли автопродление сертификата на вашем сайте
Бесплатный аудит покажет текущий срок действия сертификата и настроено ли автоматическое продление, чтобы не столкнуться с простоем неожиданно.