Все руководства для начинающих Начало работы

DNS-01 Challenge: как это работает и как его пройти

DNS-01 --- это тип ACME-проверки, который поддерживает wildcard-сертификаты (*.example.com). Он подтверждает владение доменом путём добавления TXT-записи в DNS --- без веб-сервера и доступа к порту 80.

Как это работает

  1. Let’s Encrypt предоставляет токен для каждого домена
  2. GetHTTPS вычисляет SHA-256 дайджест авторизации ключа и кодирует его в base64url
  3. Вы создаёте TXT-запись в _acme-challenge.yourdomain.com с этим значением
  4. Let’s Encrypt запрашивает публичный DNS на наличие TXT-записи
  5. Если значение совпадает, проверка пройдена и сертификат выпускается

С GetHTTPS шаги 1-2 выполняются автоматически --- вам нужно лишь скопировать имя записи и значение в панель вашего DNS-провайдера.

Пошаговая настройка

Шаг 1: Получите данные TXT-записи от GetHTTPS

GetHTTPS покажет вам:

  • Имя записи: _acme-challenge.yourdomain.com
  • Значение записи: строка в кодировке base64url (~43 символа)

Шаг 2: Добавьте TXT-запись у вашего DNS-провайдера

ПолеЗначение
ТипTXT
Имя_acme-challenge (некоторые провайдеры автоматически добавляют домен)
ЗначениеСтрока, показанная в GetHTTPS --- скопируйте и вставьте точно
TTL60 секунд (или минимально допустимое у вашего провайдера)

Инструкции для конкретных провайдеров:

Cloudflare

  1. Панель управления -> ваш домен -> DNS -> Records -> Add record
  2. Type: TXT, Name: _acme-challenge, Content: вставьте значение
  3. TTL: Auto
  4. Нажмите Save

AWS Route 53

  1. Hosted zones -> ваш домен -> Create record
  2. Record name: _acme-challenge
  3. Record type: TXT
  4. Value: "вставьте-значение-сюда" (включите двойные кавычки --- Route 53 их требует)
  5. TTL: 300
  6. Нажмите Create records

GoDaddy

  1. DNS Management -> Add
  2. Type: TXT, Name: _acme-challenge, Value: вставьте значение
  3. TTL: 1 Hour (минимально доступное)
  4. Нажмите Save

Namecheap

  1. Domain List -> Manage -> Advanced DNS -> Add new record
  2. Type: TXT, Host: _acme-challenge, Value: вставьте значение
  3. TTL: Automatic
  4. Нажмите Save all changes

Google Cloud DNS

gcloud dns record-sets create _acme-challenge.yourdomain.com. \
  --zone=your-zone --type=TXT --ttl=60 --rrdatas="the-value"

DigitalOcean

  1. Networking -> Domains -> ваш домен -> Add record
  2. Type: TXT, Hostname: _acme-challenge, Value: вставьте значение
  3. TTL: 30

Шаг 3: Дождитесь распространения DNS

Изменения DNS занимают от 1 до 15 минут в зависимости от вашего провайдера и настроек TTL. Предварительная проверка GetHTTPS убеждается, что TXT-запись видна из публичного интернета, прежде чем отправить запрос в Let’s Encrypt.

Проверьте распространение вручную:

dig TXT _acme-challenge.yourdomain.com +short
# Должно вернуть ваше значение (в кавычках)

Или используйте онлайн-инструмент проверки распространения, чтобы убедиться, что запись видна глобально.

Шаг 4: Подтвердите в GetHTTPS

Нажмите Verify. GetHTTPS отправит проверку в Let’s Encrypt. Если TXT-запись корректна, сертификат будет выпущен.

Шаг 5: Очистка

После выпуска сертификата удалите TXT-запись _acme-challenge из вашего DNS. Она больше не нужна, и устаревшие записи могут вызвать путаницу при продлении.

Wildcard-сертификаты с DNS-01

Чтобы получить сертификат для *.yourdomain.com, вы должны использовать DNS-01. HTTP-01 не может валидировать wildcard-домены, потому что wildcard покрывает бесконечное количество имён хостов --- нет единого сервера, куда можно разместить файл.

Wildcard + основной домен: Если вы хотите и *.example.com, и example.com, GetHTTPS может потребовать две валидации. Некоторые конфигурации требуют две TXT-записи в _acme-challenge.example.com одновременно --- одну для wildcard, другую для apex-домена. Сохраняйте обе записи до завершения валидации.

Полное руководство по wildcard-сертификатам ->

DNS-01 vs HTTP-01

DNS-01HTTP-01
Что нужно сделатьДобавить TXT-запись в DNSРазместить файл на сервере
Необходим доступК настройкам DNS доменаК файловой системе веб-сервера
Требования к портамНетПорт 80 должен быть открыт
Поддержка wildcard✅ Обязателен для wildcard
Работает без сервера
Скорость1-15 мин (распространение DNS)Мгновенно (если файл доступен)
Работает за CDN✅ Всегда⚠️ Может потребоваться обход CDN
Лучше всего дляWildcard, без сервера, за CDNБольшинство сертификатов для одного домена

Выбирайте DNS-01, когда: вам нужен wildcard, порт 80 заблокирован, ваш сервер недоступен из интернета, или вы находитесь за CDN.

Выбирайте HTTP-01, когда: у вас есть веб-сервер, порт 80 открыт, и вам не нужен wildcard. Это быстрее (нет ожидания распространения).

Устранение неполадок

TXT-запись не найдена GetHTTPS

  • Подождите дольше --- у некоторых провайдеров распространение занимает 5-15 минут. Низкий TTL помогает, но не устраняет время распространения полностью.
  • Проверьте имя записи: Некоторые провайдеры автоматически добавляют домен. Если вы вводите _acme-challenge.example.com, а провайдер добавляет .example.com, фактическая запись станет _acme-challenge.example.com.example.com (неправильно). Введите только _acme-challenge и позвольте провайдеру добавить домен.
  • Проверьте вручную:
    dig TXT _acme-challenge.yourdomain.com +short
    Если результат пустой, запись ещё не распространилась.

Неправильное значение / несовпадение регистра

  • Значение чувствительно к регистру. Скопируйте и вставьте прямо из GetHTTPS --- не вводите вручную.
  • Не добавляйте кавычки, если ваш DNS-провайдер не требует их (Route 53 требует, большинство других --- нет).

Конфликт нескольких TXT-записей

  • Удалите старые TXT-записи _acme-challenge от предыдущих попыток перед добавлением новых.
  • Исключение: валидация wildcard + apex может требовать две записи с одинаковым именем одновременно.

DNS-провайдер не поддерживает TXT-записи

Это редкость, но некоторые базовые DNS-сервисы не поддерживают TXT-записи. Перейдите на полнофункциональный DNS-провайдер (бесплатный план Cloudflare поддерживает все типы записей).

Когда использовать DNS-01

СценарийDNS-01?
Wildcard-сертификат (*.example.com)✅ Обязателен
Порт 80 заблокирован✅ Лучший вариант
Сервер во внутренней сети✅ Единственный вариант
За прокси Cloudflare/CDN✅ Избегает проблем с прокси
Домен без сервера (парковка, перенаправление)✅ Единственный вариант
Простой сертификат для одного домена с доступом к серверу⚠️ HTTP-01 быстрее

Часто задаваемые вопросы

Можно ли автоматизировать DNS-01 проверки?

Да, с помощью CLI-инструментов. acme.sh имеет встроенные интеграции с API для более чем 150 DNS-провайдеров --- он может добавлять и удалять TXT-записи автоматически. Certbot поддерживает DNS-плагины для основных провайдеров. GetHTTPS требует ручных изменений DNS (в браузере, без API-вызовов).

Безопасно ли передавать ACME-клиенту мой DNS API-ключ?

API-ключ имеет доступ на запись в вашу DNS-зону, поэтому обращайтесь с ним так же, как с учётными данными сервера. По возможности используйте ограниченные API-токены (например, токены Cloudflare для конкретной зоны). Для максимальной безопасности используйте GetHTTPS с ручными изменениями DNS --- никаких API-ключей не требуется.

Как долго нужно хранить TXT-запись?

Только во время валидации --- обычно несколько минут. После выпуска сертификата удалите запись. При продлении вы создадите новую с новым значением.

Что делать, если мой DNS-провайдер медленно распространяет записи?

Установите TTL на минимально допустимое значение (в идеале 60 секунд). Если распространение занимает более 15 минут, проверьте наличие опечаток в имени/значении записи или попробуйте другой DNS-провайдер. Cloudflare распространяет TXT-записи за секунды.

Работает ли DNS-01 с прокси Cloudflare (оранжевое облако)?

Да. DNS-01 валидация запрашивает TXT-запись через DNS, а не через HTTP --- поэтому статус прокси Cloudflare (оранжевое или серое облако) не имеет значения. Это ключевое преимущество перед HTTP-01, который может быть заблокирован прокси.

Похожие статьи

Начало работы 2026-05-08
Как получить бесплатный SSL-сертификат (пошаговое руководство)
Получите бесплатный SSL-сертификат от Let's Encrypt за 5 минут --- без установки программ, без создания аккаунта. Полное руководство: 4 метода, оба типа проверки, установка на 6 платформах и устранение неполадок.
Начало работы 2026-05-08
HTTP-01 Challenge: как это работает и как его пройти
HTTP-01 --- самый простой способ подтвердить владение доменом для получения SSL-сертификата. Разместите файл на сервере, Let's Encrypt проверит его, и сертификат будет выпущен.
Начало работы 2026-05-07
Как получить бесплатный Wildcard SSL-сертификат
Получите бесплатный wildcard SSL-сертификат (*.example.com) от Let's Encrypt с помощью GetHTTPS. Требуется только DNS-01 проверка. Инструкции для Cloudflare, Route 53, GoDaddy и Namecheap.
Получите бесплатный SSL-сертификат в браузере
Без установки, без аккаунта. Ваш приватный ключ никогда не покидает устройство.
Получить сертификат