Сертификат не выпускается из-за CAA: как найти запрет в DNS
Сайт открывается, DNS отвечает, проверочный файл доступен, но центр сертификации отказывается продлевать TLS-сертификат и упоминает CAA. Эта запись не доказывает владение доменом. Она задает список центров сертификации, которым владелец разрешает выпускать публичные сертификаты для имени.
Что ограничивает CAA
Если CAA нет, любой публичный центр сертификации в принципе может выпустить сертификат после успешной проверки контроля над доменом. Запись CAA сужает этот круг. Центры обязаны проверять применимые записи перед выпуском и не должны выдавать сертификат вопреки запрету.
Базовая форма содержит флаг, тег и значение. Например, запись с флагом 0, тегом issue и значением letsencrypt.org разрешает выпуск обычных сертификатов центру Let's Encrypt. Несколько записей issue действуют совместно: достаточно, чтобы одна разрешала выбранный CA.
CAA не привязывает сайт к конкретному веб-серверу и не включает HTTPS. Если убрать разрешение уже после выпуска, действующий сертификат не аннулируется автоматически, но следующее получение или продление может завершиться ошибкой.
Разница между issue и issuewild
Тег issue управляет обычным выпуском и, если отдельного issuewild нет, также распространяется на wildcard-сертификаты. Тег issuewild задает правила именно для имен вида *.example.org. Если он присутствует, центр проверяет отдельное разрешение для wildcard.
Типичная ловушка: администратор разрешил текущий CA через issue, а затем добавил issuewild для другого центра, считая его дополнительным. В результате обычный сертификат выпускается, а wildcard - нет. Перед изменением нужно составить перечень реально используемых центров и типов сертификатов.
Пустое значение у issue может запрещать выпуск соответствующего типа всем центрам. Это рабочая политика, но случайная пустая запись способна остановить автоматику. Кавычки и формат зависят от панели DNS; проверять нужно то, что реально опубликовано, а не только текст формы.
Как работает наследование
Центр ищет CAA у точного имени и затем выше по дереву DNS, останавливаясь на первом найденном наборе. Запись у example.org обычно действует и для www.example.org, и для api.example.org. Но CAA, опубликованная непосредственно у api.example.org, переопределяет родительский набор для этого имени.
При CNAME проверка следует по цепочке перенаправления. Документация Let's Encrypt обращает внимание: имя с CNAME не может одновременно иметь другие записи, поэтому политика на цели CNAME тоже способна повлиять на выпуск. Это особенно важно для сайтов на внешних платформах.
Проверять следует каждое имя из будущего сертификата. Успешный выпуск для example.org не гарантирует разрешение для shop.example.org, если у поддомена своя зона или собственная CAA.
Диагностика перед продлением
- Запросите CAA для каждого имени сертификата через несколько публичных резолверов.
- Проверьте родительские имена, если у точного имени ответа нет.
- Разберите CNAME до конечной цели.
- Сверьте идентификатор CA с официальной документацией центра.
- Проверьте DNSSEC, если запросы CAA дают SERVFAIL.
SERVFAIL нельзя трактовать как записей нет. Центр сертификации видит ошибку DNS и может остановить выпуск. Частые причины связаны с DNSSEC, недоступностью авторитетных серверов, неправильной делегацией или несогласованными ответами.
После исправления учитывают TTL. Старый набор еще некоторое время находится в кэше резолверов. Повторные запросы на сертификат каждую минуту не ускоряют его исчезновение и способны привести к дополнительным ограничениям сервиса.
Как менять политику без аварии
Сначала выясняют, какой CA выпускает все действующие сертификаты, включая CDN, почтовые и облачные сервисы. Затем добавляют разрешение новому центру, ждут распространения DNS и только после тестового выпуска удаляют старое разрешение. Удаление первым шагом создает окно, когда не разрешен ни старый, ни новый процесс.
Для небольшого сайта CAA необязательна. Если команда не готова поддерживать список центров, неверная запись принесет больше риска доступности, чем пользы. Если политика используется, ее нужно включить в документацию домена и мониторинг срока сертификата.
CAA работает хорошо, когда отражает реальную инфраструктуру. Проверенный список CA уменьшает поверхность ошибочного выпуска, а аккуратная миграция сохраняет автоматическое продление. Начинать поиск ошибки следует с опубликованного DNS-набора, наследования и CNAME, а не с перевыпуска сертификата наугад.