0006. Сертификаты по HTTP-01 вместо групповых по DNS-01¶
Дата: август 2026. Состояние: принято.
Контекст¶
У стенда шесть имён: карта, интерфейс программирования, Grafana, Prometheus, Alertmanager, документация. Каждому нужен сертификат.
Один групповой сертификат на *.metroskop.petproj.ru был бы аккуратнее: одна
выдача, одно обновление. Но групповой сертификат Let's Encrypt выдаёт только по
проверке DNS-01 — нужно на время выдачи создать запись TXT в зоне. Это делается
через интерфейс регистратора, и у reg.ru, где живёт домен, поддержки в
cert-manager нет.
Обходной путь — делегировать поддомен провайдеру DNS, который поддерживается (Cloudflare, например), и хранить его ключ доступа в кластере.
Решение¶
Отдельный сертификат на каждое имя, проверка HTTP-01 через Traefik. cert-manager
на время проверки поднимает временный маршрут /.well-known/acme-challenge/,
Let's Encrypt обращается по 80-му порту, сертификат выдаётся и складывается в
секрет. Обновление автоматическое, за тридцать дней до истечения.
Последствия¶
Что получили. Ни одного внешнего ключа доступа. Вся настройка — два объекта
ClusterIssuer (тестовый и рабочий) и ссылка на них в описании публикации.
Тестовый выпускающий центр — не формальность: у рабочего жёсткий предел на число
запросов, и отладка на нём заканчивается блокировкой на неделю.
Чем заплатили. Шесть сертификатов вместо одного и шесть обновлений вместо одного. Автоматика справляется, но каждое новое имя требует записи в описании публикации — групповой сертификат покрывал бы их заранее.
Проверка HTTP-01 требует, чтобы 80-й порт был открыт снаружи и вёл на Traefik. Это ограничение зафиксировано в правилах файрвола и в инструкции дежурного: закрытый 80-й порт — самая частая причина того, что обновление не прошло.
Что рассматривалось¶
Делегирование поддомена в Cloudflare для DNS-01 — работает, но добавляет второго поставщика DNS в схему и ключ доступа к нему в кластер. Для шести имён это дороже, чем шесть сертификатов.
Самоподписанные сертификаты — не годится: стенд открывают по ссылке, и предупреждение браузера обесценило бы всё остальное.
Сертификат от регистратора вручную — годовое обновление руками. Ровно та работа, которую следует автоматизировать, а не показывать.