Let's Encrypt: certbot не продлевает сертификат

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

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

Проверьте доступность порта 80, DNS и конфигурацию веб-сервера.

В этой статье
  1. Что означает ошибка
  2. Причины и решения
  3. Пошаговое решение
  4. Диагностика
  5. Типичные причины
  6. Если порт 80 недоступен
  7. Где скачать и что открыть

#Что означает ошибка

Сообщение
Certbot renewal failed

Сертификаты Let's Encrypt действуют 90 дней, поэтому их продление автоматизируют: certbot запускается по таймеру systemd или cron и повторно проходит проверку владения доменом. Если проверка не удаётся, продление завершается ошибкой, а сайт через некоторое время показывает просроченный сертификат.

Проверка (challenge) HTTP-01 требует, чтобы Let's Encrypt мог по адресу http://домен/.well-known/acme-challenge/ получить файл с вашего сервера. Любая преграда — закрытый порт 80, редирект, неверный DNS, блокировка правилами nginx — приводит к ошибке.

Проверьте доступность порта 80, DNS и конфигурацию веб-сервера.

#Причины и решения

Возможная причинаКак узнатьЧто делать
Порт 80Закрыт.Проявляется как «Certbot renewal failed» или близкий по смыслу сбой.Откройте.
DNSНеверный.Проявляется как «Certbot renewal failed» или близкий по смыслу сбой.Исправьте.
РедиректКонфликт.Проявляется как «Certbot renewal failed» или близкий по смыслу сбой.Проверьте.
ЛимитыПревышены.Проявляется как «Certbot renewal failed» или близкий по смыслу сбой.Подождите.

#Пошаговое решение

  1. Проверьте certbot renew --dry-runНа сервере, где работает certbot, выполните sudo certbot certificates и найдите точное имя сертификата, набор доменов, дату окончания и используемый способ подтверждения. Убедитесь, что домен всё ещё указывает на правильный сервер, а задача автоматического обновления не отключена.
  2. Откройте порт 80Выполните sudo certbot renew --dry-run и изучите первую ошибку: проблемы HTTP-01 требуют доступности порта 80 и маршрута /.well-known/acme-challenge/, DNS-01 — корректной TXT-записи и прав API. Не отключайте межсетевой экран полностью и не перезаписывайте конфигурацию всех виртуальных хостов.
  3. Проверьте виртуальный хостПосле устранения причины снова запустите пробное продление и убедитесь в успехе. Проверьте системный таймер certbot, развёрнутый сертификат через браузер/OpenSSL и настройку автоматической перезагрузки нужного веб-сервера. Для важного сайта сохраните резервную копию конфигурации и настройте контроль истечения срока.

#Диагностика

Выполните certbot renew --dry-run: он проходит весь процесс без выпуска сертификата и показывает точную причину. Просмотрите журнал /var/log/letsencrypt/letsencrypt.log. Проверьте, что DNS-запись домена указывает на этот сервер (не на CDN, который перехватывает проверки) и порт 80 доступен из интернета.

#Типичные причины

Порт 80 закрыт файрволом или облачной группой безопасности; nginx перенаправляет все запросы на HTTPS до проверки; в конфигурации блокируется каталог /.well-known; сменился путь webroot; лимиты Let's Encrypt (превышено число попыток); IPv6-запись AAAA указывает на неверный адрес.

#Если порт 80 недоступен

Используйте проверку DNS-01 (требуется доступ к API DNS-провайдера) или TLS-ALPN. Для wildcard-сертификатов (*.example.com) DNS-01 обязателен. После исправления перезагрузите веб-сервер хуком --deploy-hook "systemctl reload nginx".

Linux · Терминал (Bash)КомандаНужен sudo
Проверка продления и список выпущенных сертификатов со сроками.
sudo certbot renew --dry-run
sudo certbot certificates

#Где скачать и что открыть

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

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

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