Créer des certificats « LetsEncrypt » avec les DNS de OVH

Hello World,

Aujourd’hui, un petit tuto sous forme de prise de notes, et basé notamment sur cet article ! L’objectif est de créer une machine capable de créer et de renouveler ses certificats LetsEncrypt de facon automatisée, sous Debian. Comme il n’est pas possible pour moi de me mettre « en coupure » des flux HTTP pour le challenge-response, nous utiliserons les API d’OVH afin d’utiliser le challenge-response DNS.

Etape 1 : Télécharger et installer Certbot

La premiere étape consiste à télécharger certbot, que vous pouvez récupérer ici. Pour ma part, j’ai pris la version « Debian Other« , qui me propose « certbot-auto ». C’est une sorte de Certbot prépackagé qui va s’auto-installer avec ses propres dépendances.

(je pars du principe qu’on travaille avec le compte root. Je sais c’est crade !)

mkdir /root/certbot
cd /root/certbot
wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto

On lance ensuite ./certbot-auto pour télécharger les dépendances automatiquement avec apt-get

Etape 2 : Télécharger le hook OVH

Le Hook OVH pour certbot est récupérable ici. (Le Hook OVH pour dehydrated n’est plus disponible.)

apt-get install git
git clone https://github.com/antoiner77/letsencrypt.sh-ovh.git
cd letsencrypt.sh-ovh
mv * /root/certbot
cd ..
rm -Rf letsencrypt.sh-ovh/
cd /root/certbot
chmod 700 manual-auth-hook.py
chmod 700 manual-cleanup-hook.py
mv ovh.conf.demo ovh.conf
chmod 700 ovh.conf

Etape 3 : Installer les dépendances d’OVH pour Python

apt-get install python-pippip install ovh

Etape 4 : Générer une API Key OVH

Pour générer une API Key OVH, rien de plus simple ! Se rendre sur https://api.ovh.com/createToken/

Puis renseigner les paramètres comme suit :

Les droits doivent être les suivants

GET on /domain
POST on /domain
PUT on /domain
DELETE on /domain
GET on /domain/*
POST on /domain/*
PUT on /domain/*
DELETE on /domain/*

Vous obtenez votre API Key

Editez le fichier de configuration et renseignez les 3 valeurs ainsi acquises :

nano ovh.conf

Etape 5 : Enrôler son certificat

La méthode est très simple : il suffit de demander à certbot de créer un certificat local, sans installation, et d’utiliser le hook de création ainsi que le hook de nettoyage

./certbot-auto certonly --preferred-challenges dns-01 --manual --manual-auth-hook ./manual-auth-hook.py --manual-cleanup-hook ./manual-cleanup-hook.py -d www.g-rom.info -d g-rom.info -d www.g-rom.fr -d g-rom.fr

Si tout se passe bien, vous aurez le certificat dans /etc/letsencrypt/live/<premier-domaine> (Dans mon cas : /etc/letsencrypt/live/www.g-rom.info). On y retrouve les fichiers :

  • cert.pem : certificat
  • chain.pem : chaine de certification
  • fullchain.pem : concaténation des deux premiers
  • privkey.pem : clé privée, a garder en lieu sûr !!!

Etape 6 : Créer une crontab pour gérer tout ca

Reste à faire une crontab 🙂

crontab -e
42 6 * * * certbot-auto renew --no-self-upgrade

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *