Files
argocd/helm/certificates/ops/docs/CONFIGURATION-DNS01.md
2026-01-21 00:54:28 +01:00

4.4 KiB

Configuration DNS-01 Challenge pour Certificat Wildcard

Étapes de Configuration

1. Choisir votre Fournisseur DNS

Le ClusterIssuer letsencrypt-dns01-prod doit être configuré selon votre fournisseur DNS.

2. Configuration Cloudflare (Recommandé)

Étape 1 : Créer un Token API Cloudflare

  1. Connectez-vous à Cloudflare
  2. Allez dans "My Profile" > "API Tokens"
  3. Cliquez sur "Create Token"
  4. Utilisez le template "Edit zone DNS" ou créez un token personnalisé avec :
    • Permissions : Zone > DNS > Edit
    • Zone Resources : Include > Specific zone > gkdomaine.fr

Étape 2 : Créer le Secret Kubernetes

kubectl create secret generic cloudflare-api-key \
  --from-literal=api-key=VOTRE_TOKEN_CLOUDFLARE \
  -n certificates-ops \
  --context=cluster-ops

Étape 3 : Activer la Configuration dans le ClusterIssuer

Éditez helm/certificates/ops/templates/cluster-issuer-letsencrypt-dns01.yaml et décommentez la section Cloudflare :

solvers:
- dns01:
    cloudflare:
      email: gkpoubelle78@gmail.com
      apiKeySecretRef:
        name: cloudflare-api-key
        key: api-key

3. Configuration Route53 (AWS)

Étape 1 : Créer un Utilisateur IAM

Créez un utilisateur IAM avec la politique AmazonRoute53FullAccess ou une politique personnalisée.

Étape 2 : Créer le Secret Kubernetes

kubectl create secret generic route53-credentials \
  --from-literal=access-key-id=VOTRE_ACCESS_KEY \
  --from-literal=secret-access-key=VOTRE_SECRET_KEY \
  -n certificates-ops \
  --context=cluster-ops

Étape 3 : Activer la Configuration dans le ClusterIssuer

solvers:
- dns01:
    route53:
      region: eu-west-1
      accessKeyIDSecretRef:
        name: route53-credentials
        key: access-key-id
      secretAccessKeySecretRef:
        name: route53-credentials
        key: secret-access-key

4. Configuration OVH

Étape 1 : Créer une Application API OVH

  1. Connectez-vous à OVH API
  2. Créez une application API
  3. Notez l'Application Key et l'Application Secret
  4. Générez un Consumer Key

Étape 2 : Créer le Secret Kubernetes

kubectl create secret generic ovh-credentials \
  --from-literal=application-secret=VOTRE_APPLICATION_SECRET \
  -n certificates-ops \
  --context=cluster-ops

Étape 3 : Activer la Configuration dans le ClusterIssuer

solvers:
- dns01:
    ovh:
      applicationKey: "VOTRE_APPLICATION_KEY"
      applicationSecretRef:
        name: ovh-credentials
        key: application-secret
      consumerKey: "VOTRE_CONSUMER_KEY"

5. Autres Fournisseurs DNS

Consultez la documentation cert-manager pour :

  • Google Cloud DNS
  • Azure DNS
  • DigitalOcean
  • Namecheap
  • Et d'autres...

Vérification

Après avoir configuré le ClusterIssuer :

# Vérifier le ClusterIssuer
kubectl get clusterissuer letsencrypt-dns01-prod --context=cluster-ops

# Vérifier la configuration
kubectl describe clusterissuer letsencrypt-dns01-prod --context=cluster-ops

# Vérifier que le certificat wildcard est en cours de génération
kubectl get certificate wildcard-dev-tls -n certificates-ops --context=cluster-ops

# Voir les détails du certificat
kubectl describe certificate wildcard-dev-tls -n certificates-ops --context=cluster-ops

# Vérifier les challenges DNS
kubectl get challenges -n certificates-ops --context=cluster-ops

Troubleshooting

Le certificat ne se génère pas

  1. Vérifiez que le ClusterIssuer est correctement configuré
  2. Vérifiez que le Secret DNS existe et contient les bonnes valeurs
  3. Vérifiez les logs de cert-manager :
kubectl logs -n cert-manager -l app.kubernetes.io/name=cert-manager --context=cluster-ops

Le challenge DNS échoue

  1. Vérifiez que le domaine est résolvable publiquement :
dig _acme-challenge.dev.gkdomaine.fr TXT
  1. Vérifiez que les permissions API sont correctes
  2. Vérifiez les détails du challenge :
kubectl describe challenge -n certificates-ops --context=cluster-ops

Notes Importantes

  • Le domaine dev.gkdomaine.fr doit être résolvable publiquement via DNS
  • Les serveurs peuvent rester internes (pas besoin d'accès HTTP depuis Internet)
  • Le certificat wildcard couvre tous les sous-domaines *.dev.gkdomaine.fr
  • Le secret wildcard-dev-tls sera synchronisé automatiquement vers le cluster DEV