Blog
14.2 Création du conteneur Letsencrypt
Pour pouvoir être exécuté, certbot, le logiciel de gestion de certificats, doit tourner dans un conteneur. Voici les éléments de configuration du conteneur :
letsencrype |
| |
| container_name | letsencrypt |
| image | certbot/certbot |
| command | certonly –webroot -w /var/www/certbot –force-renewal –email <email> -d <domains> –agree-tos |
| volumes | ./certbot/conf:/etc/letsencrypt ./certbot/www:/var/www/certbot |
Plutôt simple, sauf pour la « command » qui doit être exécutée. Effectivement, c’est cette commande qui va permettre d’obtenir les certificats des sites web. Il faut donc préciser dedans la liste des domaines concernés, et l’email sur lequel vous joindre.
Vous remplacerez donc :
· <email> par votre email
· <domains> par la liste de vos domaines (dans mon cas delbary-rouille.net, www.delbary-rouille.net, pierre-ange.delbary-rouille.net, salammbo.delbary-rouille.net et moira.delbary-rouille.net .
Ajoutez la configuration dans le fichier docker-compose.yml, tout à la fin, et voici ce que cela donne dans VSCode :

Vous remarquerez que la variable « command » a un format un peu spécial : c’est pour pouvoir éviter d’avoir une longue ligne peu lisible. C’est le format YAML qui permet cette syntaxe.
Nous devons également configurer les serveurs web pour qu’ils puissent « répondre » lorsque l’organisme Letsencrypt va le contacter. Le mécanisme de certification est le suivant :
· Certbot contacte letsencrypt pour demander le certificat du site exemple.com
· Letsencrypt regarde dans son DNS (serveur de nom de domaine) vers quelle IP pointe le nom de domaine exemple.com
· Letsencrypt fait donc une requête vers l’url http://exemple.com/.well-known/acme-challenge/
· Ce faisant, Letsencrypt établit que le serveur qui lui a répondu est bien le propriétaire du site exemple.com
· Letsencrypt peut donc « écrire » un certificat valide
· Letsencrypt répond à certbot en lui donnant le certificat
· Certbot « écrit » ce certificat dans un répertoire
· C’est fini !
· Désormais, à chaque fois qu’une requête sera faite vers exemple.com, le serveur web joindra le certificat dans sa réponse, et le navigateur établira qu’étant le « propriétaire » disposant d’un certificat valide, exemple.com est digne de confiance, et qu’on peut établir avec lui une connexion sécurisée (et donc utiliser le protocole ssl en toute tranquillité).
Vous l’aurez compris, il faut donc, pour chaque configuration de site web, ajouter une « location » qui va indiquer au serveur web où trouver le fameux « .well-known/acme-challenge/ ».
Nous allons donc ajouter cette location à chaque configuration :
· core.conf
· wp-pierre-ange.conf
· wp-salammbo.conf
· wp-moira.conf
La définition de la location sera de la sorte :
location ~ /.well-known/acme-challenge/ {
root /var/www/certbot;
}
… et sera ajoutée dans la section « server » de la configuration. Exemple pour core.conf :

Vous ferez de même pour les 3 autres configurations (ou moins si vous n’avez qu’un sous-domaine).
Parfait, il est temps de synchroniser le serveur avec notre ordinateur personnel, en faisant comme précédemment.