Info
Content

Configuration

Issuer Configuration

После установки cert-manager'a в кластер, нужно наладить issuer с помощью которого будут выпускаться сертификаты
Бывает Issuer и ClusterIssuer, обычный issuer ставится в каждый неймспейс где нужно выпускать серты

ACME

ACME Issuer представляет один аккаунт зарегистрированный на ACME CA сервере. Когда ты создаешь ACME Issuer, cert-manager генерирует приватный ключ который используется в том числе для идентификации тебя на ACME сервере

Solving Challenges

Чтобы подтвердить владение доменом, для которого запрашивается сертификат, нужно завершить challenge
cert-manager предлагает два вида челленджей - HTTP01 и DNS01

HTTP01 завершается предоставлением ключа на определенном url'е доступном из интернета
Когда создается http01 challenge, cert-manager автоматически настраивает ingress на роутинг этого специального url'а в маленький web-сервер который предоставляет тот самый ключ

DNS01 завершается предоставлением ключа в DNS TXT записе, cert-manager (если все корректно настроено) автоматически создает эти dns-записи у вашего dns провайдера

Configuration

Все ACME Issuer'ы имеют схожую конфигурационную структуру:

  • cluent email
  • server url
  • privateKeyRef
  • some solvers

Example:

apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: letsencrypt-staging
spec:
  acme:
    email: user@example.com
    server: https://acme-staging-v02.api.letsencrypt.org/directory
    privateKeySecretRef:
      # Secret resource that will be used to store the account's private key.
      name: example-issuer-account-key
    # Add a single challenge solver, HTTP01 using nginx
    solvers:
    - http01:
        ingress:
          class: nginx

Adding Multiple Solver Types

Можно использовать разные типы челленджей для разных доменов
Секция solvers может содержать поле selector, которым выбирается для каких Certificates и для каких доменов в этих сертификатах нужен этот solver
Существует три вида селекторов - matchLabels, dnsNames и dnsZones
Можно использовать любое количество селекторов на одном solver'е

  • Match Labels - у Certificate должно быть полное соответствие лейблов тем что перечислены в matchLabels
  • DNS Names - dnsNames содержит полный список доменов для которых будет выпускать сертификаты этот Issuer. Этот селектор приоритетнее чем dnsZones. Если по dnsNames совпало несколько солверов, то выбор происходит по matchLabels, если других селекторов нет то выбирается тот солвер, который выше в списке
  • DNS Zones - dnsZones содержит список зон (по аналогии с dnsNames)

HTTP01

No Comments
Back to top