SSL-сертификаты ACME / Let’s Encrypt

SSL сайта: ACME-проверка владения доменом по HTTP завершается ошибкой

  • Обновлено
  • Чтение ≈ 3 минуты
  • Нужны права администратора

Краткий ответ

Служба ACME отклоняет HTTP-01 подтверждение владения доменом: запрос к /.well-known/acme-challenge/ возвращает 404, 403, чужую страницу или не открывается. Этот способ требует доступности порта 80 извне и правильного содержимого проверочного файла.

В этой статье
  1. Что происходит и когда применима инструкция
  2. Основные причины и их признаки
  3. Пошаговая диагностика и устранение
  4. Проверка результата
  5. Если решить проблему не удалось

#Что происходит и когда применима инструкция

Служба ACME отклоняет HTTP-01 подтверждение владения доменом: запрос к /.well-known/acme-challenge/ возвращает 404, 403, чужую страницу или не открывается. Этот способ требует доступности порта 80 извне и правильного содержимого проверочного файла.

#Основные причины и их признаки

Возможная причинаКак узнатьЧто делать
Домен указывает не тудаНеверный A/AAAA или балансировщик направляет ACME к другому серверу.Проверочный URL виден только на одном из адресовСверьте DNS и все конечные узлы.
Путь закрыт правиламиWAF, авторизация, неправильный root или rewrite не дают прочитать токен.В журнале 403, редирект на вход или ошибка правилРазрешите именно проверочный каталог.
Неверная схема ACMEHTTP-01 использует порт 80; для недоступного извне веб-сервера может понадобиться DNS-01.Сертификат пытаются подтвердить на нестандартном портуВыберите правильный тип проверки.

#Пошаговая диагностика и устранение

  1. Прочитайте точное сообщение ACME-клиентаВ журнале Certbot или панели хостинга найдите домен, адрес проверочного запроса и итоговый HTTP-код. Не копируйте токен в публичные заявки. Уточните, какой метод выбрал клиент: HTTP-01 и DNS-01 требуют совершенно разных ресурсов.
  1. Проверьте DNS обоих семейств адресовС машины администратора запросите A и AAAA проверяемого имени. Если на IPv6 старый узел, валидатор может попасть именно на него. Исправляйте только известную неверную запись после проверки зависимых сервисов.
  2. Терминал с dig, только чтение
    Linux · Терминал (Bash)Команда
    Терминал с dig, только чтение. Подставьте домен; используйте также авторитетный DNS для сравнения.
    dig +short example.com A; dig +short example.com AAAA
  1. Проверьте порт 80 снаружиС компьютера вне серверной сети запросите общедоступный HTTP-адрес, чтобы увидеть соединение и перенаправления. HTTP-01 допускает ограниченный набор перенаправлений на HTTP/HTTPS и порты 80/443, но не нестандартный порт. Не отключайте HTTPS ради проверки.
  2. Терминал с curl; проверка HEAD-запросом
    Linux · Терминал (Bash)Команда
    Терминал с curl; проверка HEAD-запросом. Некоторые приложения запрещают HEAD — дополнительно проверьте GET.
    curl -IL --max-redirs 10 http://example.com/
  1. Создайте безвредный диагностический файлОпределите действительный webroot выбранного виртуального хоста. В каталоге .well-known/acme-challenge/ разместите временный текстовый файл с уникальным не секретным содержимым и проверьте внешний curl. Не пишите этот файл в чужую директорию и удалите тест после завершения.
  1. Сопоставьте путь и серверный журналВ Nginx/Apache просмотрите правило обработки .well-known: его не должны перехватывать авторизация, принудительный 403, SPA-маршрутизатор или прокси к неверному приложению. По журналу установите, был ли запрос к тестовому файлу и на каком виртуальном хосте.
  1. Проверьте балансировщик и защитуПри нескольких узлах сделайте так, чтобы проверочный файл был доступен со всех соответствующих узлов или проверка маршрутизировалась к правильному. Если WAF блокирует запрос, разрешите только нужный путь и метод — не снимайте всю защиту сайта.
  1. Проведите испытание ACME без рабочего выпускаДля установленного Certbot используйте проверку продления --dry-run, если она совместима с типом действующего сертификата. Она использует тестовую среду и не заменяет боевой сертификат; ошибка подскажет конкретный URL.
    Linux · Терминал (Bash)КомандаНужен sudo
    Linux с Certbot и существующей конфигурацией продления. Может потребовать сетевой доступ и выполнять хуки; сначала изучите настройки.
    sudo certbot renew --dry-run
  1. Повторите реальную проверку по плануПосле исправления DNS/правил запустите штатное продление либо выпуск из панели, дождитесь подтверждения для каждого имени и проверьте установленный сертификат снаружи. Если порту 80 быть доступным нельзя, настройте DNS-01, не обещая, что HTTP-01 заработает на другом порту.

#Проверка результата

Тестовый путь доступен извне на всех нужных A/AAAA, ACME-клиент завершает проверку владения доменом, выдаётся сертификат для заявленных имён. Основной HTTPS и защитные правила сайта продолжают работать.

#Если решить проблему не удалось

Если внешний HTTP-запрос не доходит даже до журнала, проверьте DNS, правила безопасности облака, маршрутизатор и внешний прокси. При ошибках после прохождения HTTP ищите различия между путём теста и реальным токеном ACME.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.