4.4 KiB
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
- Connectez-vous à Cloudflare
- Allez dans "My Profile" > "API Tokens"
- Cliquez sur "Create Token"
- Utilisez le template "Edit zone DNS" ou créez un token personnalisé avec :
- Permissions :
Zone>DNS>Edit - Zone Resources :
Include>Specific zone>gkdomaine.fr
- Permissions :
É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
- Connectez-vous à OVH API
- Créez une application API
- Notez l'Application Key et l'Application Secret
- 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
- Vérifiez que le ClusterIssuer est correctement configuré
- Vérifiez que le Secret DNS existe et contient les bonnes valeurs
- 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
- Vérifiez que le domaine est résolvable publiquement :
dig _acme-challenge.dev.gkdomaine.fr TXT
- Vérifiez que les permissions API sont correctes
- Vérifiez les détails du challenge :
kubectl describe challenge -n certificates-ops --context=cluster-ops
Notes Importantes
- Le domaine
dev.gkdomaine.frdoit ê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-tlssera synchronisé automatiquement vers le cluster DEV