Toutes les infos ont été trouvées sur ce site: https://buzut.net/certbot-challenge-dns-ovh-wildcard/
# apt-get install python3-pip
# python3 -m pip install --upgrade certbot certbot-dns-ovh
Création du fichier "/etc/logrotate.d/certbot" avec le contenu suivant
/var/log/letsencrypt/*.log {
monthly
rotate 6
compress
delaycompress
notifempty
missingok
create 640 root adm
}
Pour que le script puisse vérifier que le domaine vous appartient, il doit avoir l'autorisation de modifier des enregistrements TXT dans les DNS.
Il faut donc créer les clés API avec une date de validité illimitée et pour plus de sécurité, avec une restriction au niveau de l'adresse IP du serveur où sera exécuté le script.
Les droits doivent être renseignés de cette manière:
GET /domain/zone/*
PUT /domain/zone/*
POST /domain/zone/*
DELETE /domain/zone/*
Une fois les clés créées, il est nécessaire de créer un fichier INI pour y stocker les différentes clés générées.
Créer le fichier ~/.secrets/certbot/ovh.ini avec le contenu suivant:
dns_ovh_endpoint = ovh-eu
dns_ovh_application_key = xxx
dns_ovh_application_secret = xxx
dns_ovh_consumer_key = xxx
Ne pas oublier de fixer les droits sur le fichier :
# chmod 600 ~/.secrets/certbot/ovh.ini
Par exemple, pour mon domaine
# certbot certonly --dns-ovh --dns-ovh-credentials ~/.secrets/certbot/ovh.ini -d quennec.fr -d *.quennec.fr
A renseigner dans crontab pour un contrôle tous les lundi à 9:00 et une mise à jour si nécessaire.
00 9 * * 1 /usr/local/bin/certbot certonly --dns-ovh --dns-ovh-credentials /root/.secrets/certbot/ovh.ini --non-interactive --agree-tos --email mon@email.fr -d quennec.fr -d *.quennec.fr && systemctl reload nginx
Modifier le fichier vhost correspondant au domaine pour y intégrer les directives liées au certificat letsencrypt.
server {
listen 443 ssl;
server_name quennec.fr www.quennec.fr;
...
ssl_certificate /etc/letsencrypt/live/quennec.fr/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/quennec.fr/privkey.pem;
...
}