#Что происходит и когда применима инструкция
DNS-01 подтверждение владения доменом не завершается, хотя TXT-запись _acme-challenge уже добавлена в панели DNS. Нужно проверить авторитетную зону и точное значение, а не только видимость записи через один кеширующий резолвер.
#Основные причины и их признаки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Запись внесена в неавторитетную зонуДоменные NS у регистратора указывают на другого провайдера DNS. | Панель показывает TXT, но запросы публичных NS пустые | Добавьте запись в реально обслуживаемую зону. |
| Неверное имя или значениеПанель могла автоматически добавить суффикс домена либо сохранить старый токен. | В ответе есть TXT, но токен не совпадает | Проверьте имя и содержимое текущего вызова ACME. |
| Задержка или делегированиеРаспространение, TTL, DNSSEC или отдельная CNAME-делегация влияют на запрос. | Разные NS и резолверы дают разные значения | Проверьте авторитетные ответы каждого узла. |
#Пошаговая диагностика и устранение
- Уточните точное проверочное имяСкопируйте из ACME-клиента имя
_acme-challenge.example.comи одноразовое значение TXT. Если сертификат покрывает несколько имён, для них могут потребоваться разные записи, иногда несколько TXT под одинаковым именем. Не используйте токен из прошлой попытки.
- Установите, где находятся авторитетные DNSПроверьте NS основного домена и сравните с серверами, которые указаны у регистратора. Если управлять DNS нужно через другой кабинет, запись, созданная на старом хостинге, не будет видна снаружи.
- Терминал с dig, без прав администратора; подставьте свой доменLinux · Терминал (Bash)КомандаТерминал с dig, без прав администратора; подставьте свой домен.
dig +short NS example.com
- Запросите TXT с публичного DNSПроверьте полное имя вместе с
_acme-challenge; если значение пустое, убедитесь, что панель не дописала доменную часть второй раз. Для wildcard и обычного имени одного домена TXT могут сосуществовать. - Дополнительная команда по темеLinux · Терминал (Bash)КомандаТерминал с dig; показывает видимые записи и кавычки вокруг строк, не подтверждает ответ каждого авторитетного NS.
dig +short TXT _acme-challenge.example.com
- Сравните каждый авторитетный серверДля выбранного NS выполните запрос с явным указанием сервера, затем повторите на остальных NS. Разные ответы означают незавершённое распространение или рассинхронизацию; не инициируйте продление многократно, пока значения не совпали.
- Только чтениеLinux · Терминал (Bash)КомандаТолько чтение. Замените ns1.example.net действительным NS, а домен — своим.
dig @ns1.example.net TXT _acme-challenge.example.com +noall +answer
- Проверьте делегирование и CNAMEЕсли
_acme-challengeделегирован CNAME в другую зону, откройте целевую зону и убедитесь, что токен появляется именно там. Не добавляйте одновременно несовместимые записи на одно и то же имя. При собственном DNSSEC проверьте корректность подписей в обслуживаемой зоне.
- Исправьте одну запись и дождитесь распространенияСоздайте TXT с ровно тем содержимым, которое ожидает текущая попытка, и нужным полным именем. У панелей DNS название поля может означать полное имя либо только поддомен — проверьте результат через dig. Дождитесь распространения до валидаторов, избегая бесконечного перевыпуска.
- Повторите запрос сертификатаЗапустите подтверждение через тот же ACME-клиент, который создал текущий запрос. При ручном режиме сначала получите новый токен и проверьте его публикацию; старый токен при новом заказе может быть уже непригоден.
- Подготовьте автоматическое обновлениеЕсли используется DNS API, настройте ограниченные права только к нужным записям и безопасное хранение секрета. При ручной DNS-01 автоматическое продление обычно не работает без хуков; выберите поддерживаемый автоматический способ и испытайте его в тестовой среде.
#Проверка результата
Все авторитетные серверы возвращают нужный TXT, ACME подтверждает права и выпускает сертификат; следующая проба продления проходит без ручного вмешательства, если автоматизация предусмотрена.
#Если решить проблему не удалось
Если TXT виден у всех NS, но проверка отказывает, проверьте точную ошибку ACME, DNSSEC, наличие нескольких значений и соответствие токена именно текущему заказу. Не удаляйте чужие действующие TXT-записи при использовании общего домена.