Reste à faire une crontab
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 Ubuntu-likes, 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-getEtape 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
crontab -e
42 6 * * * certbot-auto renew --no-self-upgrade