iac/infrastructure/cert-manager/aero/configs/clusterissuer-ca.yaml

54 lines
2.4 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Внутренний удостоверяющий центр контура aero.
#
# Зачем отдельный издатель: в репозитории все ClusterIssuer — ACME (Let's Encrypt)
# с решателем http01 и ingress class nginx. Контур закрытый, публичного DNS и
# входящего HTTP от ACME-сервера нет, поэтому ACME здесь принципиально нерабочий.
#
# Схема стандартная для внутренней PKI, в три шага:
# 1. selfsigned-issuer — самоподписывающий издатель, нужен только чтобы
# выпустить корневой сертификат;
# 2. aero-ca — сам корневой сертификат (isCA: true). Его приватный
# ключ попадает в secret aero-ca-key-pair в namespace cert-manager;
# 3. aero-ca-issuer — издатель, который подписывает этим корнем сертификаты
# для сервисов кластера (istio-gateway, dashboard и далее).
#
# Корневой сертификат нужно раздать клиентам (браузеры, curl), иначе они будут
# ругаться на недоверенный CA. Выгрузить его можно так:
# kubectl -n cert-manager get secret aero-ca-key-pair -o jsonpath='{.data.tls\.crt}' | base64 -d
---
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: selfsigned-issuer
spec:
selfSigned: {}
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: aero-ca
# Namespace обязателен и должен совпадать с cert-manager --cluster-resource-namespace
# (по умолчанию cert-manager): именно там ClusterIssuer ищет свой секрет.
namespace: cert-manager
spec:
isCA: true
commonName: aero-ca
secretName: aero-ca-key-pair
duration: 87600h # 10 лет — корень контура, ротация вручную
renewBefore: 720h # 30 суток
privateKey:
algorithm: ECDSA
size: 256
issuerRef:
name: selfsigned-issuer
kind: ClusterIssuer
group: cert-manager.io
---
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
name: aero-ca-issuer
spec:
ca:
secretName: aero-ca-key-pair