Aller au contenu

Cert-manager

Introduction

Cert-manager automatise la gestion des certificats TLS dans Kubernetes : création, renouvellement et déploiement des certificats.

Il peut utiliser des autorités de certification comme Let's Encrypt ou une CA interne pour sécuriser les communications en HTTPS.

Notes

Nous utiliserons une CA interne (voir Autorité de certification).

Installation

Dernière version de cert-manager

cm_version=$(curl -s https://api.github.com/repos/cert-manager/cert-manager/releases/latest | grep 'tag_name' | cut -d\" -f4)
echo $cm_version
kubectl apply -f https://github.com/cert-manager/cert-manager/releases//download/$cm_version/cert-manager.yaml

Configuration

Certificat

Copier les fichiers de votre CA (votreCA.crt et votreCA.key) dans le dossier /tmp Pour que cert-manager puisse générer automatiquement des certificats, il faut que le fichier votreCA.key soit déchiffré.

openssl rsa -in /tmp/votreCA.key -out /tmp/votreCA-decrypted.key

Création du secret tls

kubectl create secret tls ca-cert-secret \
  --namespace cert-manager \
  --cert=/tmp/votreCA.crt \
  --key=/tmp/votreCA-decrypted.key \
  --dry-run=client -o yaml | kubectl apply -f -

Création de l'émetteur (issuer)

kubectl apply -f - <<'EOF'
apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name: ca-issuer
spec:
  ca:
    secretName: ca-cert-secret
EOF

Contrôle

kubectl get secret -n cert-manager
NAME                      TYPE                DATA   AGE
ca-cert-secret            kubernetes.io/tls   2      108s
cert-manager-webhook-ca   Opaque              3      19m
kubectl describe clusterissuer ca-issuer
Name:         ca-issuer
Namespace:
Labels:       <none>
Annotations:  <none>
API Version:  cert-manager.io/v1
Kind:         ClusterIssuer
Metadata:
  Creation Timestamp:  2026-08-29T05:18:30Z
  Generation:          1
  Resource Version:    25365
  UID:                 7fa457b0-3fe9-4a5d-9acb-fd2f2c9e70dc
Spec:
  Ca:
    Secret Name:  ca-cert-secret
Status:
  Conditions:
    Last Transition Time:  2026-08-29T05:18:30Z
    Message:               Signing CA verified
    Observed Generation:   1
    Reason:                KeyPairVerified
    Status:                True
    Type:                  Ready
Events:
  Type    Reason           Age                    From                         Message
  ----    ------           ----                   ----                         -------
  Normal  KeyPairVerified  4m56s (x2 over 4m56s)  cert-manager-clusterissuers  Signing CA verified

Nettoyage

rm -rf /tmp/votreCA*

Version Date Change Auteur
1.0 29.08.2026 Création GMo