Installation certificat Let’s Encrypt sur linux debian

Let’s Encrypt
SSL

Difficulté
2/4

Durée
20′

 

Depuis que le passage en HTTPS a été fortement recommandé par Google, bon nombre de sites avec de petits budgets se sont tournés vers la solution Let’s Encrypt qui permet d’avoir un certificat SSL gratuit. Ce tutoriel vous explique comment l’installer le certificat sur une distribution linux debian 8 ou 9. Cela concerne aussi bien un serveur dédié, un VPS (type OVH) ou une instance cloud.

Connexion SSH sur le serveur

Pour effectuer l’installation et la configuration du certificat SSL Let’s Encrypt vous devez impérativement disposer d’un accès SSH et des droits d’administration de la machine. SI vous êtes sous Windows vous pouvez utilisez le célèbre utilitaire Putty.

Installer le certificat SSL Let’s encrypt sur votre serveur ou vps

Mettez-vous à la racine de votre serveur

$ cd /

La solution la plus simple est d’utiliser une librairie prête à l’emploi disponible sur GitHub. Pour cela vous devez installer le package git.

 

Installation du package git

Vérifiez que votre repository et vos packages sont à jour

$ apt-get update
$ apt-get upgrade

puis installer le package git

$ apt-get install git-core

 

Installation du projet letsencrypt

$ git clone https://github.com/letsencrypt/letsencrypt

A la fin de l’installation vous avez un répertoire letsencrypt qui a été créé à la racine de votre VPS ou serveur, entrez dans le répertoire

$ cd letsencrypt

 

Configuration du certificat SSL Let’s Encrypt

Exécutez le script suivant :

$ ./letsencrypt-auto

Cette commande permet de configurer automatiquement le ou les  certificats SSL des différents domaines qui sont sur votre VPS ou serveur. Indiquez  le ou les domaines en les séparant par des ,. ATTENTION Let’s Encrypt ne gère pas aussi facilement de Wildcard (sous domaines) qu’un simple nom. Si vous utilisez plusieurs domaines vous devrez les indiquer tous mondomain.ext,www.mondomain.ext

et pour tous les sous-domaines vous devrez indiquer *.mondomain.ext

Si aucun problème n’est intervenu, le script aura détecté les sites dans votre configuration apache et aura créé de nouveaux fichiers de configuration dans /etc/apache2/sites-available/ et dans /etc/apache2/sites-enabled/. Puis relancer le service apache :

$ service apache2 restart

 

Mise en place du renouvellement automatique du certificat SSL

Le certificat SSL gratuit Let’s Encrypt n’a une durée de vie que de 90 jours. Cela vous oblige à effectuer un renouvellement tous les 3 mois, à l’aide d’un script. Pour ne pas prendre le risque d’oublier un renouvellement d’un certificat, nous allons vous montrer comment mettre en place le renouvellement en automatique avec une tâche cron. La commande de renouvellement de certificat est :

$ /letsencrypt/letsencrypt-auto renew

Pensez à recharger les configuration d’apache ou nginx pour que le nouveau certificat soit pris en compte

$ systemctl reload apache2

ou

$ systemctl reload nginx

Vous allez créer une tâche cron pour exécuter ce script tous les dimanches à 4h00 du matin

$ crontab -e

ou si vous n’avez pas les droits

$ sudo crontab -e

Puis ajoutez les commandes suivantes et enregistrez le fichier.

* 4 * * 0 /letsencrypt/letsencrypt-auto renew >> /var/log/certificates-renew.log
30 4 * * 0 systemctl reload apache2

Et voilà vos certificats SSL gratuits Let’s Encrypt seront mis à jour automatiquement. Toutefois, lors de la première exécution prenez soin d’aller regarder le fichier de log /var/log/certificates-renew.log pour vérifier que tout s’est bien déroulé.