#Что происходит и когда применима инструкция
При выпуске HTTPS-сертификата ACME ищет токен на исходном имени и порту 80. Перенаправление может вести на другой сайт, где токена нет, либо в запрещённую схему/порт. Не каждое перенаправление мешает проверке: важно проверить конечный ответ.
#Причины: как различить похожие случаи
| Возможная причина | Как узнать | Что делать |
|---|---|---|
Редирект переносит запрос на чужое имяПравило return 301/rewrite срабатывает раньше выдачи файла ACME. | curl показывает Location на второй домен, конечный ответ 404 или иной токен. | Сохранить редирект обычных страниц, но обслуживать путь challenge исходным хостом. |
| Путь проверки недоступен по порту 80Закрыт публичный HTTP или адрес ведёт на другой сервер/CDN. | curl к http возвращает timeout, 403 или не тот виртуальный хост. | Согласовать открытие порта 80 и расположение токена на всех обслуживающих узлах. |
| Недопустимая цепочка редиректовПереход на нестандартный порт, IP-адрес или зацикливание. | В журнале ACME видно redirect loop или unsupported redirect. | Устранить циклы и нелегитимные адреса, сверить маршрут по шагам. |
#Диагностика и пошаговое устранение
- 1. Установите исходное имя и действующий способ проверкиОткройте панель сертификатов либо журнал используемого ACME-клиента и запишите имя, для которого получена ошибка, тип HTTP-01 и сообщённый URL. Не путайте
example.comиwww.example.com: валидатор проверяет каждое имя, перечисленное в заявке. На сервере с Nginx/Apache уточните, какой из них фактически принимает внешние соединения на порту 80.
- 2. Проследите маршрут HTTP со своего компьютераОткройте терминал и выполните команду для настоящего домена; путь
/.well-known/acme-challenge/test— только диагностический и обычно законно отвечает 404, если такого файла нет. По строкамHTTP/1.1иLocationвыясните, уходит ли запрос на чужое имя и доходит ли до другого сервера. Параметр-Lследует за перенаправлениями;-vпоказывает их в подробностях. - Вместо example.com укажите домен из заявкиLinux · Терминал (Bash)КомандаВместо example.com укажите домен из заявки. Не считать 404 на тестовом имени самостоятельным доказательством ошибки ACME.
curl -vL --max-redirs 10 http://example.com/.well-known/acme-challenge/test
- 3. Проверьте живой токен, не публикуя егоКогда панель или ACME-клиент предлагает ручную HTTP-01 проверку, он выдаёт актуальный токен и ответ именно для текущей попытки. Проверяйте этот путь в период существования проверки; не вставляйте случайное значение и не используйте токен из старого заказа. Если сертификат выдаётся автоматически через плагин Nginx, изучите журнал его временной конфигурации, а не создавайте вручную лишние файлы.
- 4. Найдите правило, вызывающее лишний редиректАдминистратору Linux по SSH выполнить
sudo nginx -T(Nginx) илиsudo apachectl -S(Apache) и найти конфигурацию нужного виртуального хоста. У Nginx перенаправление уровня server может сработать до обработки location; перепроверьте, где находитсяreturn 301. Командаnginx -Tвыводит полный конфиг, включая возможные секреты: не размещайте результат публично.Linux · Терминал (Bash)КомандаНужен sudoПоказывает итоговую конфигурацию Nginx без её изменения; может содержать конфиденциальные значения.sudo nginx -T
- 5. Разрешите исходному домену выдавать файл ACMEПеред правкой сделайте копию конфигурации и запишите, как вернуть её через панель. Для схемы webroot разместите корректный location на HTTP-виртуальном хосте, чтобы путь
/.well-known/acme-challenge/обслуживался согласованным каталогом токенов раньше правила перенаправления; конкретныйrootзависит от установки Certbot. Нельзя просто отключить редирект всего сайта и забыть вернуть его. Если управление перенаправлениями ведёт панель, измените её настройки, а не правьте автоматически генерируемый файл.
- 6. Проверьте конфигурацию перед применениемНа Nginx запустите
sudo nginx -t: успешный результат содержитsyntax is okиtest is successful. Только затем примените перезагрузкуsudo systemctl reload nginx. При неудачном тесте не перезагружайте службу: верните файл из резервной копии, повторите тест и при необходимости обратитесь к администратору.Linux · Терминал (Bash)С осторожностьюНужен sudoВыполняйте вторую строку только после успеха первой; применимо к systemd и Nginx. Команда перезагрузки выполняется только при успешной проверке конфигурации (оператор &&). При ошибке исправьте конфигурацию и повторите проверку; не запускайте перезагрузку вручную.sudo nginx -t && sudo systemctl reload nginxКоманда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.
- 7. Проверьте доступность проверки на всех IPЕсли у домена несколько A/AAAA-записей или есть CDN/балансировщик, убедитесь, что одинаковый путь доступен на каждом обслуживающем узле. Для пробного файла с известным содержимым проверьте
curlдо и после HTTPS-перехода; корректная конечная страница должна вернуть именно созданный текст. За пределами активной ACME-проверки диагностический несуществующий токен закономерно даёт 404.
- 8. Повторите выпуск один раз и оцените результатСначала исправьте редирект и проверьте доступность на исходном имени, затем выполните единственную штатную попытку выдачи в панели или ACME-клиенте. Если ошибка осталась — запишите конечный URL и HTTP-код из нового журнала; не повторяйте неудачи до лимита. Успех означает выданный сертификат и отсутствие ошибки подтверждения каждого имени.
#Как проверить, что неисправность устранена
Проверьте запрос действующего проверочного файла по HTTP, отсутствие лишнего перехода на чужой домен и статус успешной авторизации в ACME-клиенте. Обычные страницы после проверки должны по-прежнему перенаправляться по вашей политике.
#Если не получилось и как отменить правки
Если изменялось правило перенаправления, верните сохранённую версию виртуального хоста и после nginx -t выполните reload. Если токен выдаёт панель, настройте исключение в ней либо передайте её журнал в поддержку — ручное изменение генерируемой конфигурации может быть перезаписано.
Если причина не установлена, соберите точный текст ошибки, время, имя домена, результаты проверок без паролей и приватных ключей. Передайте их ответственному администратору или поддержке регистратора, DNS-провайдера либо хостинга. Не повторяйте опасные изменения без резервной копии.