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