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
)
No Comments