Aller au contenu principal
loading

Installer un certificat SSH avec Let's encrypt

POSTÉ DANS Serveur TAGS Serveur AUTEUR herve COMMENTAIRES 2

Cet article est, pour la majorité, tiré du site https://www.memoinfo.fr/tutoriels-linux/configurer-lets-encrypt-apache/

Installation de Certbot

Pour commencer, on télécharge Certbot et on le rend exécutable :

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

C’est un simple fichier, stockez le à un endroit approprié. Dans /opt par exemple.
Exécutez-le une première fois « à blanc » pour qu’il télécharge ses dépendances et s’installe.

./certbot-auto

Lorsque ce sera terminé, il vous proposera de commencer le travail de création. Quittez. Nous y reviendrons plus tard.

Les fichiers principaux sont installés. Tout se trouve dans /etc/letsencrypt.
Dans se dossier on trouvera 3 dossiers de stockage pour les certificats :
archive : dossier de base ou sont stockés les certificats
live : dossier des certificats actifs. Des liens symboliques vers le dossier archive.
renewal : dossier qui contient les informations de renouvellement des certificats.

Création du certificat Let’s Encrypt

Lancez la commande suivante en veillant à remplacer les valeurs par les bonnes informations :

./certbot-auto certonly --webroot --webroot-path /srv/www/domain.tld/ --domain domain.tld --domain www.domain.tld --email mon@email.com

Explications :

certonly : on demande la création du certificat uniquement.
--webroot : on utilise le plugin webroot qui se contente d’ajouter des fichiers dans le dossier défini via --webroot-path.
--webroot-path : le chemin de votre « DocumentRoot » Apache. Certbot placera ses fichiers dans $DocumentRoot/.well-known/ pour les tests et vérifications
--domain : le nom de domaine à certifier.
--email : l’adresse qui recevra les notifications de Let’s Encrypt. Principalement pour rappeler de renouveler le certificat le moment venu.

Options de création

Au niveau des paramètres de création, l’essentiel est là. Je vous invite à consulter la doc pour voir les autres options disponibles.
On pourrait éventuellement durcir le certificat en le passant en 4096 bits (2048 bits par défaut) en ajoutant le flag --rsa-key-size 4096 mais c’est un peu disproportionné. C’est vous qui voyez.

Pour revenir sur le flag --domain, attention ! Let’s encrypt ne gère pas à ce jour le Wildcard. Il faut donc penser impérativement à déclarer le domaine ET le sous-domaine « www ». Si vous êtes dans une configuration classique évidemment où votre site est accessible depuis http://domain.tld et http://www.domain.tld.

Les certificats obtenus

Si vous cherchez vos certificats, ils se trouvent dans les dossiers : /etc/letsencrypt/live/domain.tld/
Vous avez pour chaque certificat 4 fichiers :

privkey.pem : La clé privée de votre certificat. A garder confidentielle en toutes circonstances et à ne communiquer à personne quel que soit le prétexte. Vous êtes prévenus !
cert.pem : Le certificat serveur et à préciser pour les versions d’Apache < 2.4.8. Ce qui est notre cas ici.
chain.pem : Les autres certificats, SAUF le certificat serveur. Par exemple les certificats intermédiaires. Là encore pour les versions d’Apache < 2.4.8.
fullchain.pem : Logiquement, l’ensemble des certificats. La concaténation du cert.pem et du chain.pem. A utiliser cette fois-ci pour les versions d’Apache >= 2.4.8.

Modification du vhost

Le script propose de modifier automatiquement votre vhost, je vous conseille de le laisser faire automatiquement.

Renouveler automatiquement le certificat

Pour renouveller automatiquement le certificat, je vous conseille de mettre en place une crontab qui le fera pour vous.

Pour ce faire, via crontab -e il vous suffit de rajouter la ligne suivante :

0 0 1 * * /opt/certbot-auto renew

 

Tester que tout fonctionne bien

Pour cela, il vous suffit de vous rendre sur https://www.ssllabs.com et de rentrer l'URL de votre site.



2 commentaire

Derniers articles

DDEV : obtenir la liste des services
DDEV : obtenir la liste des services Posté le 27 janvier 2021
Partager un répertoire local sous Docker
Partager un répertoire local sous Docker Posté le 27 janvier 2021
Docker et Localhost Mac
Docker et Localhost Mac Posté le 27 janvier 2021
Affichage de la requête SQL d'un db_select
Affichage de la requête SQL d'un db_select Posté le 24 septembre 2020

A propos de Web'Up