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
Bonjour et merci pour ce tuto qui m’a fait sauter le pas!
pour l’install j’ai tout fait à coup d’apt-get
ça fait les étapes 1, 2 et 3 …
apt-get install certbot python3-certbot-dns-ovh
l’étape 6 à également été faite toute seule après
Bref que du bonheur…