Installation

Certbot offre un outil qui permet la mise en place automatique d’un certificat SSL pour votre nom de domaine. Pour installer cet outil, il va falloir commencer par récupérer cet outils et lui donner les droits adéquats sur notre serveur.

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

Mise en place du certificat

Certbot dispose d’un mode automatique qui va installer les dépendances nécessaires à l’outil et mettre en place les certificats en fonction de votre configuration serveur.

/opt/certbot/certbot-auto certonly

Cette commande va s’occuper de tout pour vous, elle va commencer par installer les dépendances du client, elle va ensuite détecter les noms de domaine configurés sur votre serveur, demander les certificats pour ces derniers et enfin modifier la configuration de vos différents VirtualHosts afin de prendre en compte les nouveaux certificats installés. Il est cependant possible de préciser à Certbot les domaines manuellement :

/opt/certbot/certbot-auto certonly --webroot -w /var/www/example -d example.com -d www.example.com -w /var/www/thing -d thing.is -d m.thing.is

Les certificats générés, ainsi que les clés privées sont stockés dans le dossier /etc/letsencrypt/live/ ou encore /etc/certbot/live/. Vérifiez que Certbot a bien ajouté à vos virtual hosts le certificat SSL en indiquant le chemin vers votre clé privée et votre certificat, exemple sous Apache :

<IfModule mod_ssl.c>
  <VirtualHost *:443>
    ...
    SSLCertificateFile /etc/letsencrypt/live/domaine.fr/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/domaine.fr/privkey.pem
    Include /etc/letsencrypt/options-ssl-apache.conf
    ...
  </VirtualHost>
</IfModule>

Le renouvellement

Les certificats proposés par Certbot sont valables pour une durée de 90 jours. Il faudra donc penser à les renouveler avant la fin de cette période. Pour cela on peut utiliser la commande suivant avec un cron :

sudo crontab -e 0 3 * * * /opt/cerbot/certbot-auto renew --quiet --no-self-upgrade

Cette commande renouvelle les certificats sans interaction de la part de l’utilisateur, libre a vous de placer dans le cron la récursivité de la tâche. Pour ma part je la fait se relancer tous les mois. L’avantage est que si votre commande échoue car le certificat n’est pas à mettre à jour, elle sera lancée le mois suivant et votre certificat ne risque pas d’arriver à expiration.

sudo crontab -e
30 23 1 * * /usr/local/sbin/le-renew domaine.fr >> /var/log/le-renew.log