Base de connaissances
1 000 FAQ, 500 tutoriels et vidéos explicatives. Ici, il n'y a que des solutions !
Renouveler un certificat "wildcard" par challenge DNS
Ce guide explique comment générer et renouveler automatiquement un certificat wildcard via un challenge DNS en utilisant Certbot et le plugin dns-infomaniak.
1. Installation des outils
Installez certbot et son extension (❓: aide). Sélectionnez l'onglet Wildcard, cela évitera l'erreur plugin does not appear to be installed.
2. Préparation de l'API Infomaniak
Pour automatiser le processus, générez un token d'API (❓: aide). Recherchez "dns" et cocher impérativement les deux scopes dns:read et dns:write:
Ces autorisations sont requises pour que Certbot puisse lire vos zones DNS et créer/supprimer l'enregistrement TXT de validation.
3. Génération manuelle initiale et Validation
Lancez la première génération du certificat :
certbot certonly --manual \
-d *.example.com \
--preferred-challenges dns-01 \
--server https://acme-v02.api.letsencrypt.org/directoryAccédez ensuite au Manager et créez l'enregistrement TXT demandé (Nom : _acme-challenge, Valeur : celle fournie par Certbot) pour prouver que vous possédez le domaine (❓: aide).
4. Scripts d'automatisation
Créez le script d'authentification /root/infomaniak-auth.sh :
#!/bin/bash
# API Token for Infomaniak
INFOMANIAK_API_TOKEN="YOUR_API_TOKEN_HERE"
# Update DNS record via Infomaniak API plugin
/usr/bin/certbot \
--authenticator dns-infomaniak \
--server https://acme-v02.api.letsencrypt.org/directory \
-d "$CERTBOT_DOMAIN" \
--agree-tosCréez le script de nettoyage /root/infomaniak-clean.sh :
#!/bin/bash
# Optional: Cleanup operations after challenge
exit 0Rendez ces deux scripts exécutables :
chmod +x /root/infomaniak-auth.sh /root/infomaniak-clean.sh
5. Configuration du renouvellement automatique
Éditez ou créez le fichier de configuration /etc/letsencrypt/renewal/example.com.conf :
cert = /etc/letsencrypt/live/example.com/cert.pem
privkey = /etc/letsencrypt/live/example.com/privkey.pem
chain = /etc/letsencrypt/live/example.com/chain.pem
fullchain = /etc/letsencrypt/live/example.com/fullchain.pem
[renewalparams]
authenticator = manual
manual_auth_hook = /root/infomaniak-auth.sh
manual_cleanup_hook = /root/infomaniak-clean.sh
server = https://acme-v02.api.letsencrypt.org/directory
pref_challs = dns-01
account = YOUR_ACCOUNT_ID
key_type = rsa
6. Test et Automatisation (Cron)
Vérifiez que tout fonctionne correctement avec une simulation de renouvellement :
certbot renew --dry-runSi le test réussit, ajoutez cette tâche Cron pour automatiser le renouvellement (ici, une vérification tous les 30 jours) :
0 0 */30 * * /usr/bin/certbot renew --quiet --config /etc/letsencrypt/renewal/example.com.confLien vers cette FAQ: https://faq.infomaniak.com/1708
Cette FAQ a été utile?