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

Milight Multi-Bridge Emulator – Abandon du projet

Bonjour à tous, J’avais commencé il y a plusieurs mois à coder un programme permettant d’émuler plusieurs pont « Milight » avec un code Python. Ce projet est désormais à l’abandon… En effet, il existe désormais un code qui fonctionne beaucoup mieux, et auquel j’ai préféré contribuer en dénichant les bugs et en apportant de nouvelles idées. […]

Utiliser le service DynDNS d’OVH avec un Fortigate

Hello world, Petite astuce que j’utilise depuis quelques années avec mes firewalls Fortigate, pour pouvoir bénéficier du DynDNS d’OVH ! Le DynDNS d’OVH s’appuie sur un protocole similaire au très célèbre DynDNS.org. Malheureusement la requête Web de mise à jour du Fortigate n’est pas complète pour OVH, il manque une variable… et le Fortigate ne […]

Monter un filer cloud chiffré avec Hubic et EncFS

Hello world, Hubic est une solution financièrement intéressante si on est à la recherche de capacités de stockage à bon prix au détriment de la vitesse. En effet on bénéficie d’un espace de stockage de 10 To pour 50€/an. La vitesse d’écriture/lecture est d’environ 10mbps. C’est idéal pour de l’archivage de données. C’est pratique, mais […]

Apache : Afficher l’IP réelle dans les logs lorsqu’on utilise un Reverse Proxy

Hello world, Aujourd’hui un tuto simple sous forme de prise de notes pour pouvoir afficher l’IP du client dans Apache, au lieu d’afficher l’IP du Reverse Proxy. Tuto basé sur une Debian 8 On créé un fichier remoteip-vhost.conf dans /etc/apache2/conf-available On configure le contenu avec l’IP du reverse proxy. RemoteIPHeader X-Forwarded-For RemoteIPTrustedProxy 192.168.x.x On modifie […]

phpIPAM : Script de synchronisation des groupes avec Active Directory

Hello world, J’utilise phpIPAM, qui est un gestionnaire de plan d’adressage IP opensource très puissant ! Il est interfaçable avec Active Directory, ce qui est plutôt pratique. On peut ainsi ajouter un utilisateur de l’Active Directory et mapper automatiquement des groupes IPAM en fonction de son appartenance à des groupes AD. Seulement voila… il est […]

IPX800 : Script de mesure de consommation à partir d’un compteur à impulsion

Hello world, Il existe sur le marché des compteurs de consommation électrique. Ces derniers sont modulaires et s’insèrent facilement dans votre tableau électrique, en coupure.Le principe est assez simple, ils envoient des impulsions en fonction de votre consommation (le modèle en photo ci dessus envoie une impulsion tous les Watt Heure, donc 1000 impulsions pour […]

SoYouStart – Attention, les IP Failover sont facturées au bloc en cas de dépassement

Bonjour à tous, Petite précision, ce post a été rédigé début septembre 2016 et était en attente de publication. Je ne le publie que maintenant, car la situation est toujours au point mort au 1er février 2017… C’est rare que je raconte mes déboires publiquement, mais là je dois bien avouer que ma récente expérience […]