SSL-сертификаты Certbot / Let’s Encrypt

SSL сайта: Сертификат Let’s Encrypt не продлевается по расписанию

  • Обновлено
  • Чтение ≈ 3 минуты
  • Нужны права администратора

Краткий ответ

Сертификат Let’s Encrypt успешно устанавливался вручную, но не продлевается автоматически: сервис cron/systemd не выполняет задачу, проверка ACME меняется после миграции или обновлённые файлы не подхватывает веб-сервер.

В этой статье
  1. Что происходит и когда применима инструкция
  2. Основные причины и их признаки
  3. Пошаговая диагностика и устранение
  4. Проверка результата
  5. Если решить проблему не удалось

#Что происходит и когда применима инструкция

Сертификат Let’s Encrypt успешно устанавливался вручную, но не продлевается автоматически: сервис cron/systemd не выполняет задачу, проверка ACME меняется после миграции или обновлённые файлы не подхватывает веб-сервер.

#Основные причины и их признаки

Возможная причинаКак узнатьЧто делать
Планировщик не запускает клиентsystemd timer, cron или панель хостинга не активны либо конфликтуют.В журнале нет попыток продления около срокаПроверьте реальный механизм планирования.
Не работает прежний метод проверкиИзменился webroot, DNS, ключ API или сетевой маршрут.Запуск есть, но ACME возвращает 403, 404 или DNS-ошибкуИспытайте renewal с действующим типом вызова.
Сертификат продлён, но не установленСервер не перечитал конфигурацию или CDN хранит отдельный сертификат.В файле новый срок, а снаружи старыйПроверьте deploy-hook и внешнюю точку TLS.

#Пошаговая диагностика и устранение

  1. Определите управляющий инструментПосмотрите, кем был выпущен сертификат: Certbot, acme.sh, встроенным интерфейсом панели или менеджером CDN. Инструкция для certbot renew применима только к сертификатам, которыми управляет Certbot; не запускайте несколько независимых клиентов для одного домена без понимания последствий.
  1. Посмотрите перечень сертификатов CertbotЕсли установлен Certbot, на Linux с правами администратора выведите информацию о сертификатах и сроке действия, запишите имена и пути. Не публикуйте личный ключ или закрытое содержимое /etc/letsencrypt.
    Linux · Терминал (Bash)КомандаНужен sudo
    Linux с Certbot. Команда только читает информацию; при отсутствии Certbot используйте штатную панель выпуска.
    sudo certbot certificates
  1. Проверьте автоматический запускНа системе с systemd посмотрите таймеры, включая неактивные; имя может быть certbot.timer либо snap.certbot.renew.timer. Если таймера нет, выясните, не настроен ли cron, задача панели или контейнер.
  2. Linux c systemd; чтение
    Linux · Терминал (Bash)Команда
    Linux c systemd; чтение. Пустой результат не доказывает отсутствие другого расписания.
    systemctl list-timers --all | grep -i certbot
  1. Проверьте журнал последней попыткиПросмотрите журнал journalctl для фактического unit и отдельные логи Certbot в закрытом каталоге. Сопоставьте дату, домен, используемый метод и код ошибки. Не изменяйте расписание, пока неизвестно, выполнялся ли клиент вообще.
  1. Запустите безопасную пробу продленияНа сервере с действующей настройкой Certbot выполните renew --dry-run, заранее изучив настроенные хуки. Проба может обращаться к сети и запускать хуки; она не устанавливает тестовый сертификат вместо рабочего. Зафиксируйте конкретную ошибку HTTP-01/DNS-01.
    Linux · Терминал (Bash)КомандаНужен sudo
    Linux, Certbot, доступ ACME; sudo требует администратора. Если certificate is not due, dry-run всё равно проверяет сценарий продления.
    sudo certbot renew --dry-run
  1. Исправьте причину отказа ACMEПри HTTP-01 проверьте доступность порта 80, DNS и путь .well-known/acme-challenge; при DNS-01 — действительность API-ключа, имя TXT, публикацию и задержку. Не открывайте публичный доступ к закрытым каталогам и не отключайте проверку сертификата.
  1. Проверьте установку и обновление веб-сервераЕсли продление проходит, выясните, куда клиент сохраняет файлы, и как рабочий сервер их читает. Для Nginx обычно нужен управляемый fullchain.pem и ключ. Настройте согласованный deploy-hook только после проверки синтаксиса и возможности безопасной перезагрузки.
  1. Установите контроль на будущееПроверьте сертификат через внешнее TLS-подключение, включите уведомление об истечении срока и наблюдение за результатами задачи планировщика. Сохраните единый метод выпуска: лишние cron-задачи и одновременные продления могут упереться в ограничения удостоверяющего центра.

#Проверка результата

Пробное продление проходит, планировщик выполняет единственную понятную задачу, обновлённый сертификат попадает на внешнюю точку TLS; установлено уведомление о приближении срока окончания.

#Если решить проблему не удалось

Если сухая проверка успешна, но в журнале нет регулярных запусков, чините таймер/cron, а не DNS. Если запуски есть, но наружный сертификат старый, исследуйте deploy-hook, CDN и конфигурацию виртуального узла.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.