#Что означает сообщение
DNS-01 failed
Для wildcard нужна проверка DNS-01: TXT-запись _acme-challenge. Проверьте API провайдера DNS, TTL и права токена.
#Причины и признаки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Нет API-доступа | Сравните права текущего пользователя и ограничения именно для нужной операции, файла или устройства; посмотрите сообщение об отказе. Отслеживайте результат по журналу нужной службы, не по соседним сайтам. | Измените только необходимое разрешение, если это одобрено владельцем системы, вместо предоставления полных прав всем пользователям. |
| Долгий TTL | Новый TXT не виден через некоторые резолверы, хотя авторитетный сервер уже отдаёт правильное значение. | Сравните ответ на авторитетном DNS и через обычный резолвер; дождитесь окончания существующего TTL перед повторной проверкой. |
| Лишняя TXT | Несколько значений _acme-challenge могут быть нормальными при параллельном подтверждении; проверьте нужный токен. | Удаляйте только устаревшее значение, когда его уже не использует другая текущая авторизация ACME. |
| Неверное имя | TXT создана для другого уровня домена или к имени _acme-challenge автоматически добавлен суффикс зоны второй раз. | Исправьте точное имя записи в редакторе DNS и повторите запрос непосредственно к авторитетному серверу. |
#Пошаговое решение
- Проверьте исходные условияУзнайте, какой инструмент выпускает wildcard-сертификат (
*.example.com), и проверьте дату окончания: для шаблонных сертификатов Let’s Encrypt требуется проверка DNS-01. Обычное открытие файла по HTTP-01 не подтверждает владение wildcard-доменом. - Проверьте TXT-записьПосмотрите журнал последнего обновления certbot или другого ACME-клиента и найдите имя TXT-записи
_acme-challenge.example.com, её ожидаемое значение и сообщение об ошибке. Значение TXT меняется для новой попытки; не используйте прежний токен и не удаляйте чужие активные TXT, если одновременно проходит несколько проверок. - Проверьте другую возможную причинуВ панели DNS откройте зону домена и убедитесь, что TXT добавляется в правильную авторитетную зону. Проверьте запись через
dig TXT _acme-challenge.example.com @имя-авторитетного-NSи затем через публичный резолвер. При нескольких DNS-провайдерах и CNAME-делегировании следует учитывать место, где реально хранится запись. - Проверьте итогНастройте автоматическое обновление TXT через официальный DNS-плагин ACME для вашего провайдера с минимальными правами ключа API и безопасным хранением секрета. Повторите пробное продление (
certbot renew --dry-run, если управляет certbot), проверьте развёрнутый сертификат и убедитесь, что ключи не попали в журналы.
#На что обратить внимание
Не удаляйте сторонние TXT в _acme-challenge вслепую: параллельные проверки могут использовать несколько значений. Если авторизация выполняется вручную, настройте автоматизацию для следующего продления.