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 DNS dynamique 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 télécharger et placer proprement le programme « certbot-auto » en lui attribuant les droits nécessaire à son exécution de manière sécurisé.

wget https://dl.eff.org/certbot-auto
sudo mv certbot-auto /usr/local/bin/certbot-auto
sudo chown root /usr/local/bin/certbot-auto
sudo chmod 0755 /usr/local/bin/certbot-auto
sudo certbot-auto --help #pour tester

Demande de certificat

La demande se fait via une commande de ce type :

sudo certbot-auto certonly --webroot --webroot-path /var/www/domaine.tld/ --domain domaine.tld --domaine www.domaine.tld --email mon@email.com

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 :

sudo certbot-auto certonly --webroot --webroot-path /var/www/html/ --domain bigboss.mgs --domaine www.bigboss.mgs --email azerty@bigboss.mgs

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.

sudo a2enmod ssl
sudo a2enmod rewrite
sudo systemctl restart apache2

Maintenant, on va crée un fichier de configuration pour notre site en HTTPS :

 sudo nano /etc/apache2/sites-available/bigboss.mgs-le-ssl.conf

Et on y insère le code suivant :

<IfModule mod_ssl.c>
        <VirtualHost *:443>
                ServerAdmin azerty@bigboss.mgs
                ServerName bigboss.mgs
                DocumentRoot /var/www/html

                ErrorLog ${APACHE_LOG_DIR}/error.log
                CustomLog ${APACHE_LOG_DIR}/access.log combined

                SSLCertificateFile /etc/letsencrypt/live/bigboss.mgs/fullchain.pem
                SSLCertificateKeyFile /etc/letsencrypt/live/bigboss.mgs/privkey.pem
                Include /etc/letsencrypt/options-ssl-apache.conf
        </VirtualHost>
</IfModule>

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

//TODO

Home Assistant

Renouvellement du certificat

Manuellement

sudo certbot-auto renew

Automatiquement

On ajoute le contenue suivant dans le crontab :

0 2 30 * * /usr/local/bin/certbot-auto renew

De cette manière, le renouvellement de certificat est invoqué tous les 30 jours à 02h00 du matin.

Laisser un commentaire

Your email address will not be published. Required fields are marked (required)