Génération d'un certificat Let's Encrypt avec Certbot
Ce tutoriel vous permettra (j’espère) de générer un certificat SSL gratuit chez Let’s Encrypt pour un serveur à la maison (derrière une Box). Il peut aussi servir pour un serveur en ligne (VPS par exemple).
Prérequis
- Serveur Web ༼⁰o⁰;༽
- Nom de domaine
Un nom issue d’un reverse DNS comme avec No-IP fera l’affaire - Box internet où on connait la passphrase d’administration (je sais, j’en demande beaucoup…)
Configuration de la Box
Vous l’aurez compris, si votre serveur n’est pas derrière une Box internet (chez vous par exemple), vous pouvez passer cette étape.
L’utilitaire “certbot” a besoin d’accéder aux ports 80 et 443 de votre serveur. Pour cela vous devez alors rediriger ces ports vers votre serveur sur votre Box Internet (en TCP seulement). Si vous ne savez pas le faire (ce qui est normalement peu probable si vous suivez ce tutoriel), je vous invite à fouiller sur l’interface Web de votre Box ou de chercher la procédure dans le cyberespace.
Certbot
Installation
On va le faire en suivant les recommandations de la documentation officiel.
Avec les commandes ci-dessous, on va ajouter le dépot et installé les composants de certbot :
|
|
Demande de certificat
La demande se fait via une commande de ce type :
|
|
Pour comprendre, voici des paramètres d’exemple :
- Mon répertoire Web est situé dans le dossier :
/var/www/html
- Mon nom de domaine est le suivant : bigboss.mgs
Il est aussi accessible en : www.bigboss.mgs - Mon adresse e-mail est : azerty@bigboss.mgs
Avec ces paramètres je ferais donc ce la manière suivante :
|
|
Si vous n’avez qu’un seul nom de domaine vous pouvez enlever une des directive “–domain”.
Si tous ce passe bien votre certificat ainsi que votre couple de clés (privée et public) se trouve dans le repertoire portant votre nom de domaine dans le dossier /etc/letsencrypt/live/
.
À partir d’ici, vous pouvez couper les redirections de port si elles sont inutiles pour vous. Notez qu’il faut les réactiver quand vous allez renouveler votre certificat (un certificat Let’s Encrypt est valable 3 mois).
Installation du certificat
Serveur Apache
Configuration
Vous aurez besoins d’activer le module “SSL” ainsi que le module “rewrite” si vous souhaitez rediriger automatiquement le HTTP vers HTTPS.
|
|
Maintenant, on va crée un fichier de configuration pour notre site en HTTPS :
|
|
Et on y insère le code suivant :
|
|
On active ensuite cette nouvelle configuration avec un sudo a2ensite bigboss.mgs-le-ssl
(nom du fichier de configuration sans son extension) et on recharge apache avec sudo systemctl reload apache2
.
Normalement, votre site est maintenant accessible en HTTPS !
Redirection de HTTP vers HTTPS
Pour cette partie, on ajoute simplement les 3 lignes suivantes dans
la configuration du VirtualHost écoutant sur le port 80
( dans mon exemple, le fichier /etc/apache2/sites-available/bigboss.mgs.conf
)
|
|
Renouvellement du certificat
Manuellement
|
|
L’option --apache
permet de gérer automatiquement le service Apache.
Le processus va alors stopper Apache, renouveler le(s) certificat(s) et le démarrer.
De cette manière, l’action devient quasi-transparente.
On peut faire un test (donc sans sauvegarder les certificats) avec l’option --dry-run
|
|
Automatiquement
On ajoute le contenue suivant dans le crontab :
|
|
De cette manière, le renouvellement de certificat est invoqué tous les 1 du moi à 02h00 du matin.
Si comme moi vous galérez avec les valeurs de crontab, je vous conseille ce générateur en ligne.