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 requis

Le plugin DNS Infomaniak n'est pas inclus par défaut. Pour éviter l'erreur plugin does not appear to be installed, installez certbot et son extension en suivant les instructions officielles.

Assurez-vous de sélectionner l'onglet Wildcard sur le site de Certbot après avoir choisi votre système.

 

2. Génération manuelle initiale

Exécutez cette commande pour lancer 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/directory

 

3. Validation du challenge DNS (Enregistrement TXT)

Pour prouver que vous possédez le domaine, accédez à votre Manager Infomaniak et créez l'enregistrement TXT suivant :

  • Nom : _acme-challenge
  • Valeur : (celle fournie par la commande Certbot)

 

4. Préparation de l'API Infomaniak

Pour automatiser le processus, générez un token d'API avec le scope domain dans votre interface de gestion. Ce token permettra au script de mettre à jour vos DNS automatiquement.

 

5. Script d'authentification (infomaniak-auth.sh)

Créez le fichier /root/infomaniak-auth.sh. Ce script sera appelé par Certbot lors du renouvellement :

#!/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-tos

Rendez le script exécutable :

chmod +x /root/infomaniak-auth.sh

 

6. Script de nettoyage (infomaniak-clean.sh)

Créez le fichier /root/infomaniak-clean.sh pour finaliser la procédure :

#!/bin/bash
# Optional: Cleanup operations after challenge
exit 0

Rendez le script exécutable :

chmod +x /root/infomaniak-clean.sh

 

7. Configuration du renouvellement automatique

Éditez ou créez le fichier de configuration suivant : /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

 

8. Test et Automatisation (Cron)

Avant de l'automatiser, vérifiez que tout fonctionne correctement avec une simulation :

certbot renew --dry-run

Si le test réussit, ajoutez cette tâche Cron pour vérifier le renouvellement tous les X jours :

0 0 */30 * * /usr/bin/certbot renew --quiet --config /etc/letsencrypt/renewal/example.com.conf

Modifiez 30 jours ci-dessus selon la fréquence désirée. Le cron utilisera automatiquement :

  • le fichier domain.tld.conf
  • le script d'authentification infomaniak-auth.sh
  • le plugin dns-infomaniak

Cette FAQ a été utile?