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é.