Ошибки Certbot: как прочитать сообщение и найти причину
Certbot сам пишет, что пошло не так: главное — строки Type и Detail. Найдите слова из своего сообщения в таблице ниже — для каждой ошибки есть страница с исправлением по шагам.
Содержание 8
Найдите свою ошибку
Посмотрите на последние строки, которые вывел Certbot, и найдите слова из них в левой колонке.
| Слова в сообщении | Что случилось | Что делать |
|---|---|---|
Some challenges have failed | Let’s Encrypt не подтвердил домен. Причина — в строках Type и Detail выше | Разбор |
DNS problem: NXDOMAIN looking up A | У имени нет записи в DNS — например, у www | Разбор |
Timeout during connect | Let’s Encrypt не дождался ответа от сервера: порт 80 закрыт фаерволом или IP не тот | Разбор |
Connection refused | Сервер отказал в подключении: nginx не работает или не слушает порт 80 | Разбор |
Invalid response from … 404 | По адресу из DNS отвечает другой сервер или другая папка | Разбор |
CAA record for … prevents issuance | CAA-запись домена не разрешает выпуск сертификатов Let’s Encrypt | CAA-запись |
Could not automatically find a matching server block | Сертификат получен, но Certbot не нашёл сайт в настройках nginx | Разбор |
Another instance of Certbot is already running | Certbot уже запущен: в другом окне или для продления | Разбор |
The requested nginx plugin does not appear to be installed | Certbot стоит без дополнения для 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:, а некоторые строки могут немного отличаться.
Источники
- Исходный код Certbot 5.8.0: auth_handler.py — как Certbot показывает неудачную проверку домена.
- Исходный код Certbot 5.8.0: log.py — журнал /var/log/letsencrypt/letsencrypt.log и последняя строка.
- Исходный код Certbot 5.8.0: main.py — строка The dry run was successful.
- Исходный код Certbot 5.8.0: описание ключа --dry-run — тестовый сервер, только certonly и renew.
- Исходный код Certbot 5.8.0: configurator.py — плагин nginx.
- Исходный код сервера Let’s Encrypt (Boulder): va.go — тексты ошибок подключения.
- Исходный код Certbot 2.9.0: auth_handler.py — эта версия стоит в пакетах Ubuntu 24.04.
- Let’s Encrypt: лимиты на выдачу сертификатов — страница обновлена 5 августа 2026 года.
Сверено 10 октября 2026 года.
Что почитать дальше
Проверено и обновлено: 10.10.2026