#Что означает ошибка
Challenge failed
Чтобы выдать сертификат, Let's Encrypt проверяет, что вы управляете доменом: по HTTP (http-01) обращается к файлу в /.well-known/acme-challenge/ на порту 80, либо по DNS (dns-01) смотрит TXT-запись. Если сервер недоступен извне или отдаёт не то, проверка проваливается и certbot пишет Challenge failed for domain. Подробности лежат ниже сообщения: Detail: ....
#Причины и решения
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Порт 80 закрытФайрвол, облачный Security Group или провайдер блокируют входящий 80. | curl http://домен/ снаружи не открывается. | Откройте порт: sudo ufw allow 80,443/tcp. |
| Неверный DNSДомен указывает на другой IP или A-запись ещё не обновилась. | dig +short домен возвращает чужой IP. | Исправьте A/AAAA-запись и подождите. |
| Редирект блокирует проверкуПравило редиректа HTTP→HTTPS или на другой хост ломает проверку. | В детали Invalid response и код 301/403. | Исключите /.well-known/acme-challenge/ из редиректов. |
| Лимиты Let's EncryptСлишком много неудачных попыток или выпусков сертификатов. | Сообщение too many failed authorizations. | Подождите час и ознакомьтесь с . |
#Пошаговое решение
- Прочитайте Detail в выводе certbotТам указано:
Timeout during connect(порт закрыт),NXDOMAIN(нет DNS-записи),Invalid response from ... 404/403(проблема веб-сервера). - Проверьте DNS
dig +short A example.comиdig +short AAAA example.com— IP должны совпадать с вашим сервером. Лишняя AAAA-запись на несуществующий IPv6 — частая причина. - Проверьте доступность порта 80Проверку выполняет владелец домена для метода HTTP-01. С другой сети откройте
http://ВАШ-ДОМЕН/.well-known/acme-challenge/ПРОБНЫЙ-ФАЙЛ, предварительно создав безобидный файл в том каталоге, который обслуживает веб-сервер для проверки Certbot. Должно открыться точное содержимое файла, а не просто любой HTTP-ответ. Ответ404,403или перенаправление на неправильный хост не подтверждают, что проверка пройдёт. Проверьте разрешение домена в DNS, доступность порта 80 из интернета, конфигурацию виртуального хоста и лог Certbot. Не отключайте фаервол целиком: разрешайте только требуемый входящий трафик в своей конфигурации. - Откройте портыВладелец сервера должен убедиться, что запросы проверяющего центра достигают сервера по TCP 80 для HTTP-01. Проверьте DNS имени и сетевые правила облака/хостинга, затем в Linux посмотрите активный брандмауэр (
sudo ufw status, только если UFW используется). Не выполняйте автоматическиufw allow 80/tcp, пока не выяснены действующие правила безопасности; при необходимости откройте порт в согласованном межсетевом экране и проверьте с внешней сети. Порт 443 нужен для обычного HTTPS, но не заменяет порт 80 при HTTP-01. Если сервер управляется панелью хостинга, используйте её штатный выпуск сертификатов. - Не блокируйте /.well-knownДля HTTP-01 центр сертификации должен получить файл
http://ваш-домен/.well-known/acme-challenge/...из настроенного обработчика. В Nginx проверьте активный виртуальный хост и конфигурацию Certbot (sudo nginx -Tвыводит всю конфигурацию — не публикуйте секретные фрагменты). Убедитесь, что правила перенаправления или проксирования не блокируют путь проверки; при необходимости сделайте резервную копию файла конфигурации и изменяйте только нужный блок. После изменений сначалаsudo nginx -t, затем штатная перезагрузка конфигурации. Примерroot /var/www/htmlниже не подходит, если фактический каталог сайта другой. - Выпустите сертификат повторноТолько после исправления DNS и доступности HTTP-01 повторите выпуск с помощью вашего установленного клиента Certbot. Если используется Nginx и домены принадлежат вам, в терминале с правами администратора введите
sudo certbot --nginx -d ваш-домен.example, заменив пример точным доменом; добавляйте-d www...лишь когда www действительно обслуживается и правильно разрешается. Успех — сообщение Certbot о выданном сертификате; затем откройте сайт по HTTPS и проверьте срок.certbot renew --dry-run— отдельная проверка автоматического продления. Не запускайте эти команды на сервере, где сертификатами управляет панель хостинга, без согласования. - Проверка DNS и порта, тестовый запуск certbot без расходования лимитовLinux · Терминал (Bash)КомандаНужен sudoПроверка DNS и порта, тестовый запуск certbot без расходования лимитов.
dig +short A example.comcurl -I http://example.com/.well-known/acme-challenge/testsudo certbot renew --dry-runsudo certbot --nginx -d example.com -d www.example.com
Для проверки перед выпуском воспользуйтесь сервисом : он выполняет те же проверки и подсвечивает ошибку. Если ваш сервер за Cloudflare в режиме прокси, временно отключите «оранжевое облако» или используйте метод dns-01. Wildcard-сертификаты (*.example.com) выдаются только через dns-01. Для DNS-проверки существует множество плагинов certbot для популярных DNS-провайдеров.