xpeditis2.0/infra/prod/k8s/base/11-certificate.yaml
2026-09-07 21:40:50 +02:00

60 lines
1.8 KiB
YAML

# =============================================================================
# Certificats TLS (Let's Encrypt via cert-manager, defi DNS-01 Cloudflare)
# =============================================================================
# Pourquoi DNS-01 et non HTTP-01 :
# - il fonctionne meme quand le proxy Cloudflare (nuage orange) est actif et
# que le firewall Hetzner n'accepte que les IP Cloudflare ;
# - il permet un certificat wildcard, donc un seul certificat pour tous les
# sous-domaines presents et futurs ;
# - il ne depend pas de la joignabilite du port 80.
#
# Un certificat est renouvele 30 jours avant expiration. Surveillez l'alerte
# "certificat expirant" (cf. k8s/monitoring/) : un renouvellement casse passe
# inapercu jusqu'au jour ou le site devient inaccessible.
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: xpeditis-wildcard
namespace: xpeditis-prod
spec:
secretName: xpeditis-wildcard-tls
issuerRef:
name: letsencrypt-prod
kind: ClusterIssuer
commonName: xpeditis.com
dnsNames:
# Le wildcard ne couvre PAS l'apex : les deux doivent etre listes.
- xpeditis.com
- "*.xpeditis.com"
duration: 2160h # 90 jours
renewBefore: 720h # 30 jours
privateKey:
algorithm: ECDSA
size: 256
# Nouvelle cle a chaque renouvellement : limite la fenetre d'exploitation
# d'une cle qui aurait fuite.
rotationPolicy: Always
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: grafana-tls
namespace: monitoring
spec:
secretName: grafana-tls
issuerRef:
name: letsencrypt-prod
kind: ClusterIssuer
commonName: grafana.xpeditis.com
dnsNames:
- grafana.xpeditis.com
duration: 2160h
renewBefore: 720h
privateKey:
algorithm: ECDSA
size: 256
rotationPolicy: Always