Tout d’abord pourquoi devons nous installer un certificat SSL ?
Pour plusieurs raisons, la plus importante est surement le cryptage des échanges qui se font entre l’utilisateur et le serveur WEB (notamment les données sensibles comme les mots de passes de l’utilisateur).
Une personne malveillante peut facilement vous dérober votre mot de passe s’il est envoyé en clair vers un site en HTTP.
Il existe deux types de certificats :
- Les certificats auto-signés : non reconnu par les navigateurs et donc peu fiable ?_?
- Les certificats signés par une autorité de certification : reconnu par les navigateurs mais ça coute la peau des fesses !!!
C’est quoi Let’s encrypt ?
En plus d’être une autorité de certificat, Let’s Encrypt offre un outil qui permet la mise en place automatique d’un certificat SSL pour votre nom de domaine, le tout sans dépenser un sou.
Pour installer cet outil, il va falloir commencer par cloner gratuitement le dépôt GitHub.
Nous allons donc commencer par installer git sur notre serveur :
1 2 |
sudo apt-get update sudo apt-get install git |
Ensuite il suffit de cloner le dépôt de Let’s encrypt :
1 |
sudo git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt |
Une fois le dépôt sur notre serveur nous allons commencer l’installation :
1 2 |
cd /opt/letsencrypt ./letsencrypt-auto --help |
Cette commande permet d’afficher le manuel d’utilisation mais aussi de vérifier et installer les dépendances manquantes pour bien utiliser Let’s encrypt.
Pour générer un certificat pour un domaine ou un sous domaine il faut lancer letsencrypt-auto avec l’argument -d, exemple :
1 |
./letsencrypt-auto certonly --standalone -d overgen.com -d blog.overgen.com |
Ceci nous permet de créer un certificat valide pour deux domaines (overgen.com et blog.overgen.com). les fichiers seront stockés dans :
1 |
/etc/letsencrypt/live |
Il ne vous reste plus qu’à modifier votre config Apache2 (virtual host dans /etc/apache2/sites-available) :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<IfModule mod_ssl.c> <VirtualHost *:443> .... SSLEngine on SSLCertificateFile /etc/letsencrypt/live/overgen.com/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/overgen.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/overgen.com/fullchain.pem ..... </VirtualHost> </IfModule> |
Redémarrer votre serveur web et le tour est jouée !
1 |
service apache2 restart |
Comme le certificat généré est valide pour 90jours, Let’s encrypt vous propose une commande pour renouveler votre certificat automatiquement :
1 |
/opt/letsencrypt/letsencrypt-auto renew |
Ajoutez la commande dans cron pour l’exécuter chaque 15 jours par exemple :
1 |
30 4 1,16 * * /opt/letsencrypt/letsencrypt-auto renew >> /var/log/letsencrypt/renew.log |
Et voilà !!!
So, what do you think ?