Перейти к содержимому

SSL-сертификаты

Gateway поддерживает сертификаты ACME и загруженные сертификаты. ACME может использовать HTTP-01 или DNS-01. Загружаемый материал должен включать полную цепочку и соответствующий закрытый ключ.

Практический результат — предсказуемый HTTPS: у каждого публичного Route есть ответственный за сертификат, понятный способ продления, заблаговременное предупреждение об истечении и проверенная процедура замены. Gateway управляет выпуском, отслеживает связи и передаёт сертификат только нужным нодам Ingress. Ваша команда по-прежнему отвечает за Domain, внешний DNS, одобрение имён и реакцию на возможную компрометацию ключа.

Используйте автоматический выпуск, когда Gateway может надёжно подтвердить контроль Domain. Выбирайте Upload, если сертификаты выпускает внешний центр сертификации или корпоративная система. В обоих случаях проверьте с внешнего устройства, что каждый Route отдаёт правильный сертификат и полную цепочку. Одного статуса Active в интерфейсе недостаточно.

Подключайте сертификаты к Route через Gateway, а не копируйте файлы на серверы nginx вручную. Gateway передаёт локальные копии только тем нодам, где сертификат используют включённые TLS Route. Следите за сроком действия и состоянием продления заранее, не дожидаясь последних дней.

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

Сведения о сертификате со статусом размещения, сроком действия и информацией о продлении

  • Используйте HTTP-01, когда доменное имя уже указывает на назначенную ноду Ingress и публичный порт 80 доступен.
  • Используйте DNS-01, когда нужны wildcard-имена или HTTP-проверка непрактична. Настройте поддерживаемый DNS-коннектор с минимальной областью зоны.
  • Используйте Upload для сертификатов, выпущенных вне Gateway. Загрузите закрытый ключ, конечный сертификат и необходимые промежуточные сертификаты как одну согласованную цепочку.

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

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

До изменения сертификата, общего для нескольких Route, проверьте все показанные Gateway связи. Определите тип изменения: обычное продление, плановый переход на другой центр сертификации или экстренная замена ключа. Для каждого варианта нужны свои уведомления и план отката.

  1. Откройте SSL Certificates и создайте сертификат.
  2. Выберите ACME или Upload и укажите необходимые имена или материалы.
  3. Дождитесь завершения проверки и выпуска.
  4. Откройте каждый зависимый Route и выберите сертификат.
  5. Включите TLS и примените Route.
  6. Дождитесь распространения на назначенную ноду Ingress.
  7. Проверьте с внешнего устройства цепочку, доменное имя, протокол и срок действия.

Gateway распространяет материал закрытого ключа только на ноды, которым он нужен сейчас. Не копируйте управляемые файлы сертификатов между хостами nginx; ручные копии обходят отслеживание связей, ротацию и очистку.

Отслеживайте оставшийся срок действия и последнюю попытку продления. Заранее проверьте учётные данные DNS-коннектора и доступность HTTP-проверки. Для загруженных материалов создайте или обновите управляемый сертификат через Gateway и после замены проверьте каждый подключённый Route.

Изменение сертификата может затронуть несколько Routes. Проверьте связи до ротации, сохраняйте предыдущий материал до успешной внешней проверки и не объединяйте замену сертификата с несвязанными изменениями Ingress.

Продление успешно, если Gateway показывает новый срок, сертификат передан каждой нужной ноде Ingress, внешние клиенты получают новую цепочку и ни один Route не возвращает сертификат по умолчанию или старую версию. Храните предыдущий материал только столько, сколько требует политика и возможный откат; не оставляйте истёкший закрытый ключ широко доступным.

  • HTTP-01 не отвечает: проверьте публичный DNS, порт 80, назначение Domain и доступность проверочного адреса.
  • DNS-01 завершился ошибкой: проверьте авторизацию коннектора, выбранные учётную запись и зону, распространение DNS и старые проверочные записи.
  • Ключ не соответствует сертификату: убедитесь, что загруженный закрытый ключ относится к конечному сертификату.
  • Неполная цепочка: добавьте промежуточные сертификаты в порядке выпуска и уберите посторонние корневые сертификаты.
  • Сертификат не передан на ноду: убедитесь, что включённый TLS Route на этой ноде действительно ссылается на него.

Удаляйте сертификат только после отсоединения всех Routes и внешней проверки замены. Храните экспортированные материалы согласно политике организации по хранению ключей.

Если ключ мог быть скомпрометирован, рассматривайте замену как инцидент, а не обычное продление. Выпустите новую пару ключей, обновите все зависимые Route, выполните внешнюю проверку, отзовите старый сертификат, если центр сертификации поддерживает отзыв, и зафиксируйте затронутые имена и период риска. Откат не должен возвращать сертификат с предположительно скомпрометированным ключом.