Ошибки

Ошибки Certbot: как прочитать сообщение и найти причину

Certbot сам пишет, что пошло не так: главное — строки Type и Detail. Найдите слова из своего сообщения в таблице ниже — для каждой ошибки есть страница с исправлением по шагам.

Обновлено 10.10.2026≈ 7 мин чтения
Содержание 8

Найдите свою ошибку

Посмотрите на последние строки, которые вывел Certbot, и найдите слова из них в левой колонке.

Слова в сообщенииЧто случилосьЧто делать
Some challenges have failedLet’s Encrypt не подтвердил домен. Причина — в строках Type и Detail вышеРазбор
DNS problem: NXDOMAIN looking up AУ имени нет записи в DNS — например, у wwwРазбор
Timeout during connectLet’s Encrypt не дождался ответа от сервера: порт 80 закрыт фаерволом или IP не тотРазбор
Connection refusedСервер отказал в подключении: nginx не работает или не слушает порт 80Разбор
Invalid response from … 404По адресу из DNS отвечает другой сервер или другая папкаРазбор
CAA record for … prevents issuanceCAA-запись домена не разрешает выпуск сертификатов Let’s EncryptCAA-запись
Could not automatically find a matching server blockСертификат получен, но Certbot не нашёл сайт в настройках nginxРазбор
Another instance of Certbot is already runningCertbot уже запущен: в другом окне или для продленияРазбор
The requested nginx plugin does not appear to be installedCertbot стоит без дополнения для nginxРазбор
Could not bind TCP port 80Запуск с ключом --standalone, а порт 80 занят nginxРазбор
too many certificates, too many failed authorizationsСработал лимит Let’s EncryptРазбор
Failed to renew certificate, All simulated renewals failedНе прошла проверка продленияРазбор
Строки nginx со словом [emerg]Ошибка в настройках nginxВсе ошибки nginx

Как Let’s Encrypt проверяет домен

Прежде чем выдать сертификат, Let’s Encrypt проверяет, что домен ваш. С ключом --nginx Certbot на время проверки добавляет в настройки nginx ответ на адрес вида http://example.com/.well-known/acme-challenge/…. Сервер Let’s Encrypt узнаёт в DNS IP-адрес домена, подключается к нему по порту 80 и запрашивает этот адрес.

Проверку проходит каждое имя из команды по отдельности — и example.com, и www.example.com. Ошибиться может любое из трёх звеньев:

  • DNS не знает имени или знает не тот адрес — в сообщении Type: dns или ответ от чужого сервера;
  • подключиться к серверу не удалось — Type: connection;
  • сервер ответил, но не тем, чего ждали, — Type: unauthorized.

Вместо example.com в примерах подставьте свой домен. Адрес 203.0.113.10 в примерах — условный, у вас в сообщении будет IP-адрес из DNS вашего домена.

Как читать сообщение

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Requesting a certificate for example.com and www.example.com

Certbot failed to authenticate some domains (authenticator: nginx). The Certificate Authority reported these problems:
  Identifier: example.com
  Type:   connection
  Detail: 203.0.113.10: Fetching http://example.com/.well-known/acme-challenge/kD8…: Timeout during connect (likely firewall problem)

Hint: The Certificate Authority failed to verify the temporary nginx configuration changes made by Certbot. Ensure the listed domains point to this nginx server and that it is accessible from the internet.

Some challenges have failed.
Ask for help or search for solutions at https://community.letsencrypt.org. See the logfile /var/log/letsencrypt/letsencrypt.log or re-run Certbot with -v for more details.
  • Identifier — имя, которое не прошло проверку. В Certbot из пакетов Ubuntu 24.04 эта строка называется Domain.
  • Type — вид ошибки: dns, connection, unauthorized, caa.
  • Detail — что ответил сервер Let’s Encrypt: по какому IP-адресу и какому адресу он ходил и что получил.
  • Hint — подсказка от Certbot. Она зависит от способа проверки (здесь — nginx), а не от ошибки.
  • Две последние строки тоже одинаковые: Certbot советует форум Let’s Encrypt и показывает, где лежит журнал.

Длинная строка из букв и цифр после acme-challenge/ у вас будет своя — здесь она сокращена до многоточия.

Где смотреть подробности

Подробный журнал последнего запуска Certbot записывает в файл /var/log/letsencrypt/letsencrypt.log. Последние 50 строк из него покажет команда:

sudo tail -n 50 /var/log/letsencrypt/letsencrypt.log

Файл доступен только с sudo. Чтобы Certbot сразу выводил больше подробностей на экран, добавьте к своей команде ключ -v. Все команды на этой странице вводятся на сервере: подключитесь к нему по SSH (как подключиться) и набирайте их в том же окне.

Как проверить, не тратя лимиты

У Let’s Encrypt есть лимиты: например, не больше 5 неудачных проверок одного имени в час. Пока ищете причину, запускайте проверку на тестовом сервере Let’s Encrypt — с ключом --dry-run:

sudo certbot certonly --nginx --dry-run -d example.com -d www.example.com

Тестовый сервер проверяет домен так же, как настоящий, но сертификат не сохраняется и в настройки сайта не прописывается. Если всё в порядке, в конце будет строка The dry run was successful. Тогда выпустите настоящий сертификат:

sudo certbot --nginx -d example.com -d www.example.com

Ключ --dry-run работает только с командами certonly и renew. Если лимит уже сработал, разбор — на странице too many certificates.

Ошибки nginx в выводе Certbot

С ключом --nginx Certbot проверяет и перезагружает настройки nginx. Если в выводе есть строки nginx со словами [emerg] или test failed, сначала исправьте настройки — по странице Все ошибки nginx — и убедитесь, что sudo nginx -t отвечает syntax is ok и test is successful.

Тексты сообщений сверены с исходным кодом Certbot 5.8.0 — эта версия ставится через snap, как в инструкции Бесплатный SSL-сертификат, — и сервера Let’s Encrypt. В Certbot 2.9.0 из пакетов Ubuntu 24.04 вместо Identifier: стоит Domain:, а некоторые строки могут немного отличаться.

Источники

Сверено 10 октября 2026 года.

Что почитать дальше

Проверено и обновлено: 10.10.2026