Центр сертификации выпускает сертификат только после подтверждения контроля домена. Ошибка обычно связана не с TLS как таковым, а с DNS, доступностью challenge по HTTP/DNS, неверным webroot, CAA или превышенным лимитом попыток.

Сначала прочитайте точную ACME-ошибку и проверьте домен снаружи по IPv4 и IPv6. Не запускайте повтор каждые несколько секунд: staging CA и dry-run позволяют исправить конфигурацию без расходования production rate limits.

Что проверить в первую очередь

Сначала зафиксируйте точный сценарий, время ошибки и последнее известное рабочее состояние. Не меняйте несколько настроек одновременно: один контролируемый шаг должен подтверждать или исключать одну гипотезу. Перед работой с данными и конфигурацией подготовьте резервную копию и понятный способ отката.

  • Проверьте A, AAAA и CNAME всех имен, включенных в запрос.
  • Убедитесь, что порт 80 доступен из интернета и не уходит на другой сервер.
  • Проверьте URL /.well-known/acme-challenge/ в нужном webroot.
  • Посмотрите CAA, прокси/CDN и точный текст authorization failure.

Почему возникает проблема

Внешний симптом обычно появляется на границе нескольких компонентов: интерфейса, backend, базы, фоновой очереди или внешнего сервиса. Поэтому важно найти первое место, где состояние становится неверным, а не исправлять последнее сообщение об ошибке.

  • Старый AAAA направляет проверку на сервер без challenge.
  • Редирект или приложение перехватывает .well-known и возвращает 404/403.
  • Клиент пишет token в один webroot, а vhost обслуживает другой.
  • CAA не разрешает выбранный центр сертификации.
  • Wildcard запрошен через HTTP-01, хотя требует DNS-01.

Пошаговая диагностика

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

  • Создайте тестовый файл challenge и запросите его извне по каждому имени.
  • Проверьте DNS у нескольких резолверов и авторитетные NS.
  • Сравните server_name, document root и правила proxy/redirect.
  • Для DNS-01 проверьте TXT _acme-challenge и время propagation.
  • Запустите certbot/acme client dry-run или staging с подробным журналом.

Выбор HTTP-01 и DNS-01

Метод подтверждения должен соответствовать архитектуре и типу сертификата.

  • HTTP-01 удобен для обычного домена, если порт 80 ведет на нужный webroot.
  • DNS-01 нужен для wildcard и подходит, когда DNS можно автоматизировать через API.
  • Reverse proxy/CDN должен пропускать challenge или сам управлять сертификатом.
  • Каждое имя SAN проверяется отдельно и должно вести на контролируемую инфраструктуру.
  • После выпуска приватный ключ хранится с минимальными правами и резервируется безопасно.

Как исправить проблему

Исправление лучше разбить на небольшие обратимые изменения. Сначала устраните подтвержденную причину, затем повторите исходный сценарий и проверьте соседние функции. Массовую обработку данных запускайте на ограниченной выборке с отчетом и только после сверки расширяйте на весь объем.

  • Исправьте A/AAAA и дождитесь актуального TTL до повторной production-попытки.
  • Добавьте исключение location для ACME challenge перед общим proxy/redirect.
  • Согласуйте webroot клиента и vhost.
  • Исправьте CAA или настройте DNS API для автоматического DNS-01.
  • Настройте deploy hook/reload веб-сервера только после успешного обновления.

Безопасный порядок внедрения

  • Сохраните затрагиваемые данные, конфигурацию и текущие журналы, заранее проверив способ отката.
  • Повторите проблему на тестовом объекте без реальных списаний, рассылок и изменений клиентских данных.
  • Внесите одно логическое изменение и зафиксируйте его в системе контроля версий или журнале работ.
  • Не отключайте авторизацию, валидацию, шифрование и другие защитные механизмы ради быстрого исчезновения ошибки.
  • После выкладки контролируйте логи, метрики и полный пользовательский сценарий, а не только один успешный запрос.

Как проверить результат

Разовый успешный тест недостаточен. Повторите операцию, проверьте крайние значения, параллельные действия и восстановление после перезапуска или временного сбоя. Для важного сценария сохраните автоматический тест либо короткий регрессионный чек-лист.

  • Dry-run продления завершается успешно для всех имен.
  • Сертификат содержит нужные SAN, валидную цепочку и корректные сроки.
  • HTTP и HTTPS ведут на ожидаемый vhost без цикла.
  • Автоматический timer включен, а до срока окончания настроен мониторинг.

Типичные ошибки при исправлении

  • Удалять AAAA, не проверив, нужен ли рабочий IPv6.
  • Отключать firewall полностью вместо открытия/маршрутизации нужного challenge.
  • Повторять production-выпуск до rate limit.
  • Копировать чужой приватный ключ или выдавать ему слишком широкие права.

Как предотвратить повторение

Профилактика строится вокруг явных контрактов, повторяемых релизов и наблюдаемости. Система должна не только работать сейчас, но и позволять быстро увидеть нарушение инварианта при следующем обновлении, росте нагрузки или сбое внешнего сервиса.

  • Мониторьте срок сертификата и результат dry-run.
  • Храните DNS и vhost как управляемую конфигурацию.
  • Автоматизируйте DNS-01 через ограниченный API token.
  • Проверяйте сертификат после смены CDN, IP и доменных записей.

Что подготовить для технического разбора

  • Описание ожидаемого и фактического поведения, а также точную последовательность действий.
  • Время проблемы, идентификатор тестового объекта и версии затронутых компонентов.
  • Фрагменты журналов до и после ошибки без секретов и персональных данных.
  • Перечень последних изменений и уже выполненных проверок.
  • Безопасный доступ к тестовой среде или способ воспроизвести сбой без влияния на клиентов.

Частые вопросы

Нужен ли порт 80, если сайт работает только по HTTPS?

Для HTTP-01 он обычно нужен на время проверки и может сразу перенаправлять остальные запросы. Альтернатива — DNS-01.

Почему проверка идет на IPv6?

Если у домена есть AAAA, центр может использовать его. IPv6 должен вести на тот же корректный сервис либо запись нужно осознанно исправить.

Когда нужна помощь специалиста

Если сертификат не выпускается или не продлевается, я могу проверить DNS, IPv6, ACME challenge, vhost, CAA и автоматизацию, исправить выпуск без лишних попыток и настроить мониторинг срока.