LINUX:LetsEncrypt

But

Si votre serveur est accessible depuis Internet et que vous proposez un service WEB par exemple, il vous faut acquérir un certificat publique auprès d'une Autorité de Certification (CA) officielle. Let's Encrypt en propose des gratuits.


Installation

Sous Linux (Fedora), on installe le logiciel avec la commande suivante:

dnf install certbot python3-certbot-apache 

Ici on va utiliser Apache comme serveur WEB (service HTTPD).


Prérequis

Un certain nombre de prérequis sont nécessaires:

  • un nom de domaine officiel
  • votre serveur doit être accessible depuis Internet
  • Apache doit être installé et doit s'exécuter
  • Apache doit présenter au moins un "VirtualHost" lié au nom de domaine officiel, celui-ci doit être configuré au niveau du DNS mondial. Voyez l'article suivant: Serveur visible sur Internet

Il est fortement conseillé de sauver votre configuration d'Apache se trouvant dans le répertoire "/etc/httpd" car elle sera adaptée automatiquement. Par défaut, votre configuration se trouve dans les répertoires "/etc/httpd/conf" et "/etc/httpd/conf.d".


Acquérir un certificat

On exécute la commande suivante:

certbot --apache

La première fois, on vous demande une adresse mail. Ce ne peut être une adresse mail interne. Let's Encrypt doit pouvoir vous envoyer un message par exemple en cas de dépassement du délais de validité.

Il présente une liste de vos "VirtualHost". Il suffit d'introduire le n° d'ordre de celui désiré.

Les certificats vont se stocker dans le répertoire "/etc/letsencrypt".

Par la même occasion, il va adapter votre configuration. Elle fait référence à un fichier de configuration que la commande a généré "/etc/letsencrypt/options-ssl-apache.conf". Il n'est pas nécessaire de le modifier ou de l'outrepasser. Par contre, vérifiez votre propre configuration et adaptez-la si nécessaire. C'est pour cette raison qu'on vous conseille de la sauver auparavant.


Détruire un certificat

Il se peut que vous n'ayez plus besoin d'un certificat. Pour l'éliminer, lancez la commande suivante:

certbot delete

Il vous est demandé d'introduire le n° d'ordre du certificat concerné selon la liste présentée.


Renouvellement des certificats

La durée de validité est courte. Elle est de trois mois. Il faut donc veiller à les renouveler.

Heureusement, il existe une commande qui s'en charge:

certbot renew --apache

Les certificats seront renouvelés seulement s'il reste moins de 30 jours de validité.

On peut créer un script. On le place par exemple dans un répertoire "/manager/letsencrypt" et on le nomme par exemple "ssl.renew.bat". Par la même occasion, on relance Apache au cas où les certificats auraient été renouvelés.

Voici ce script:


#!/bin/bash
/usr/bin/certbot renew --apache
/usr/bin/systemctl restart httpd

On fait appel à ce script dans le Cron de Linux. On ajoute les lignes suivantes dans le fichier "/etc/crontab":


# letsencrypt renew
40 23 * * * root /manager/letsencrypt/ssl.renew.bat > /manager/letsencrypt/ssl.renew.log

Ici on l'appelle tous les jours pendant la nuit. Mais on pourrait ne l'appeler qu'une fois par semaine.


Remarque

Ces certificats sont utilisables dans d'autres contextes comme par un serveur de messagerie (postfix, dovecot).




->retour aux certificats