Plateforme de gestion des certificats
Automatisation du cycle de vie des certificats TLS de niveau entreprise — de la demande self-service au stockage Vault. Multi-tenant, entièrement GitOps, zéro étape manuelle.
Cycle de vie des certificats
Sept étapes automatisées de la demande au renouvellement — aucune intervention humaine requise après l'approbation initiale du PR.
Demande
BackstageL'utilisateur soumet une demande via le portail self-service Backstage. Nom d'équipe, domaine, sous-domaine, type d'émetteur.
Création du PR
GitHub APILe système crée une Pull Request GitHub contenant les manifestes YAML de certificat, la config du namespace et les politiques RBAC.
Sync GitOps
ArgoCDAprès approbation et fusion du PR, ArgoCD détecte les changements et synchronise les manifestes vers le cluster.
Challenge ACME
cert-managercert-manager crée un enregistrement TXT DNS-01 via l'API Cloudflare pour prouver la propriété du domaine auprès de Let's Encrypt.
Certificat émis
Let's EncryptLet's Encrypt valide le challenge DNS et émet le certificat TLS. cert-manager le stocke en tant que Secret Kubernetes.
Stockage Vault
ESO PushSecretL'opérateur External Secrets PushSecret synchronise automatiquement le certificat vers HashiCorp Vault pour consommation externe.
Renouvellement auto
cert-managercert-manager renouvelle automatiquement 30 jours avant l'expiration. Le certificat renouvelé se propage vers K8s et Vault.
Isolation multi-tenant
Chaque équipe a son propre namespace avec isolation stricte — RBAC, politiques réseau, politiques Vault et règles Kyverno empêchent l'accès inter-tenant.
Namespace
Namespace dédié par tenant avec quotas de ressources et limites.
RBAC
Le RBAC Kubernetes restreint l'accès aux ressources spécifiques au tenant.
Réseau
Les NetworkPolicies imposent l'isolation des tenants au niveau réseau.
Vault
Les politiques Vault garantissent que les tenants ne peuvent lire que leurs propres chemins de secrets.
Fournisseurs DNS supportés
Les challenges DNS-01 fonctionnent avec tout fournisseur DNS — nativement ou via webhooks.
Cloudflare
recommendedNative integration
API Token (Zone:DNS:Edit)
AWS Route53
Native integration
Access Keys or IRSA (Workload Identity)
Google Cloud DNS
Native integration
Service Account JSON or Workload Identity
Azure DNS
Native integration
Client Secret or Managed Identity
DigitalOcean
Webhook integration
API Token via webhook solver
Custom (RFC2136)
Webhook integration
BIND-compatible TSIG key
Architecture technique
L'ensemble des composants intégrés qui alimentent la plateforme de certificats.
graph TD BS["Backstage Portal Self-Service UI POST /api/certificate"]:::backstage GH["GitHub Repository Git as Source of Truth tenants/team-name/certificates/"]:::github CM["cert-manager ACME Protocol DNS-01 Challenge via Cloudflare"]:::certmanager ESO["External Secrets Operator PushSecret K8s Secret → Vault"]:::eso VAULT["HashiCorp Vault Long-term Storage kv/certs/team-name/tls"]:::vault BS -->|"GitHub API"| GH GH -->|"ArgoCD sync"| CM CM -->|"K8s Secret created"| ESO ESO --> VAULT classDef backstage fill:#1e3a5f,stroke:#60a5fa,color:#93c5fd,stroke-width:2px classDef github fill:#14332a,stroke:#4ade80,color:#86efac,stroke-width:2px classDef certmanager fill:#2e1a0e,stroke:#f97316,color:#fdba74,stroke-width:2px classDef eso fill:#2e1a47,stroke:#a78bfa,color:#c4b5fd,stroke-width:2px classDef vault fill:#2e2a0e,stroke:#facc15,color:#fde68a,stroke-width:2px
Capacités de la plateforme
Certificats wildcard
Support pour *.example.com couvrant tous les sous-domaines. Validation DNS-01 requise. Kyverno empêche l'abus wildcard inter-tenant.
Renouvellement automatique
cert-manager renouvelle les certificats 30 jours avant expiration. Les certificats renouvelés se propagent automatiquement vers Vault via PushSecret.
Portail self-service
Interface web Backstage pour demander des certificats. Validation de formulaire, sélection de domaine, choix d'émetteur — aucune connaissance YAML requise.
Tout en GitOps
Chaque demande de certificat devient un PR. Piste d'audit complète, capacité de rollback, workflow d'approbation natif Git.
Monitoring Prometheus
PrometheusRules personnalisées pour les alertes d'expiration, la santé des émetteurs et les échecs de sync PushSecret. Dashboards Grafana inclus.
Support multi-fournisseur
Cloudflare, AWS Route53, Google Cloud DNS, Azure DNS et fournisseurs webhook pour tout DNS personnalisé.
Alertes intégrées
Les alertes PrometheusRule détectent les problèmes avant qu'ils n'impactent les utilisateurs.
CertificateExpiryWarning
Fires 30 days before a certificate expires
CertificateExpired
Certificate has already expired
IssuerNotReady
ClusterIssuer is not functioning correctly
PushSecretSyncFailed
ESO cannot synchronize certificate to Vault