Certbot: DNS problem: NXDOMAIN looking up A — у имени нет записи
Let’s Encrypt спросил DNS, на какой IP-адрес ведёт имя, и получил ответ «такого имени нет». Добавьте для этого имени A-запись — для www тоже — или уберите его из команды.
Содержание 11
Что сделать прямо сейчас
- Посмотрите, какое имя не прошло проверку, — шаг 1.
- Проверьте, есть ли у него запись, — шаг 2.
- Добавьте A-запись или уберите имя из команды — шаг 3.
- Повторите выпуск сертификата — шаг 4.
Что значит это сообщение
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: www.example.com
Type: dns
Detail: DNS problem: NXDOMAIN looking up A for www.example.com - check that a DNS record exists for this domain; DNS problem: NXDOMAIN looking up AAAA for www.example.com - check that a DNS record exists for this domain
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.NXDOMAIN — ответ DNS «такого имени нет». Let’s Encrypt спрашивает у DNS сразу два адреса: A-запись (IPv4) и AAAA-запись (IPv6). Когда ни той ни другой нет, обе ошибки стоят в одной строке через точку с запятой.
Здесь example.com проверку прошёл, а www.example.com — нет. Имена, которые прошли, в сообщение не попадают. Причины бывают такие:
- A-запись заведена только для example.com, а в команде есть и
-d www.example.com; - опечатка в имени после
-d; - записи добавлены не в той панели — не там, где на самом деле обслуживается DNS домена.
Вместо example.com в примерах подставьте свой домен. Адрес 203.0.113.10 в примерах — условный, у вас в сообщении будет IP-адрес из DNS вашего домена.
Шаг 1. Посмотрите, какое имя не прошло
Имя стоит в строке Identifier (в Certbot из пакетов Ubuntu 24.04 — Domain) и повторяется в строке Detail после слов looking up A for. Сравните его по буквам с тем, что вы писали после -d.
Шаг 2. Проверьте запись
На своём компьютере откройте терминал (Как открыть терминал) и спросите DNS об этом имени:
nslookup www.example.comЕсли записи нет, в ответе будет строка:
** server can't find www.example.com: NXDOMAINЕсли вместо неё есть строка Address: с IP-адресом вашего сервера, запись уже появилась — переходите к шагу 4. Как читать ответ и как спросить NS-сервер домена напрямую, разобрано в инструкции Как проверить DNS-записи.
Шаг 3. Добавьте запись
Есть два пути.
Если www нужен. Добавьте A-запись с именем www и тем же IP-адресом, что у основного домена. Записи меняют в панели того, кто обслуживает DNS домена: регистратора или хостера. Где именно, подсказано в шаге 2 статьи A-запись, как добавить запись — в шаге 3.
Новая запись видна не сразу. Повторяйте команду из шага 2, пока вместо NXDOMAIN не появится адрес сервера.
Если www не нужен. Уберите -d www.example.com из команды Certbot — тогда сертификат будет только на example.com. Если позже понадобится www, добавьте для него A-запись и выпустите сертификат заново с обоими именами.
Шаг 4. Повторите выпуск
Сначала проверьте на тестовом сервере Let’s Encrypt — так не тратится лимит неудачных проверок. Все команды на этой странице вводятся на сервере: подключитесь к нему по SSH (как подключиться) и набирайте их в том же окне.
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Другие ответы DNS
| Что в Detail | Что это значит |
|---|---|
SERVFAIL looking up A for … - the domain's nameservers may be malfunctioning | NS-серверы домена ответили ошибкой. Проверьте, что у домена указаны верные NS-серверы и они отвечают, — шаг 4 инструкции |
query timed out | NS-сервер домена не ответил вовремя. Повторите позже и проверьте NS-серверы так же |
no valid A records found for … | Имя есть, но A-записи у него нет — или в ней внутренний адрес вроде 192.168.… или 127.0.0.1. Укажите внешний IP-адрес сервера из панели провайдера |
CAA record for … prevents issuance (Type: caa) | Запись нашлась, но CAA-запись домена не разрешает Let’s Encrypt — см. CAA-запись |
Как проверить
nslookup для каждого имени из команды показывает IP-адрес сервера, а Certbot с ключом --dry-run пишет The dry run was successful.
Похожие ошибки
| Сообщение | Чем отличается |
|---|---|
| Timeout during connect | Запись есть, но к серверу по этому адресу не подключиться |
| Invalid response from … 404 | Запись есть, но ведёт на другой сервер или по ней отвечает не тот сайт |
| DNS_PROBE_FINISHED_NXDOMAIN | Та же причина, но в браузере: сайт не открывается по имени |
Тексты сообщений сверены с исходным кодом Certbot 5.8.0 — эта версия ставится через snap, как в инструкции Бесплатный SSL-сертификат, — и сервера Let’s Encrypt. В Certbot 2.9.0 из пакетов Ubuntu 24.04 вместо Identifier: стоит Domain:, а некоторые строки могут немного отличаться.
Источники
- Исходный код сервера Let’s Encrypt (Boulder): dns.go — запрос A и AAAA, текст no valid A records found.
- Исходный код сервера Let’s Encrypt (Boulder): problem.go — тексты NXDOMAIN и SERVFAIL.
- Исходный код Certbot 5.8.0: auth_handler.py — как Certbot показывает неудачную проверку.
- Исходный код Certbot 2.9.0: auth_handler.py — эта версия стоит в пакетах Ubuntu 24.04.
Сверено 10 октября 2026 года.
Что почитать дальше
Проверено и обновлено: 10.10.2026