Sécuriser gratuitement son site en HTTPS avec Let’s Encrypt

Let's Encrypt HTTPS

Let’s Encrypt site internet

Let’s Encrypt vous permet d’acquérir un certificat HTTPS valide pour votre site internet, comme s’il avait été certifié par une CA (certificate authority ou autorité de certification). Les autorités de certification sont des autorités qui délivrent des certificats : Let’s Encrypt est une CA, gratuite.

Vérification du certificat d’un site internet avec Let’s Encrypt

Pour SHZ, voici ce que donne l’ouverture avec Mozilla Firefox.

Mozilla Firefox Let's Encrypt

Let’s Encrypt sur SHZ avec Mozilla Firefox

Mise en place d’un certificat HTTPS gratuit

Le logiciel Certbot va nous permettre de certifier les domaines sur notre serveur web, ici apache. Si vous disposez d’une autre configuration, sur la page d’accueil le site de Certbot nous propose de choisir notre configuration.

Certbot sur Debian 8+

Ajoutez les dépôts backports à votre système en plaçant cette ligne dans le fichier /etc/apt/sources.list.

deb http://ftp.debian.org/debian jessie-backports main

Rafraîchissez ensuite votre système.

apt-get update

Et installez le paquet certbot.

apt-get install python-certbot-apache -t jessie-backports

Si jamais vous souhaitez installer Let’s Encrypt avec nginx sous Debian :

apt-get install python-certbot-nginx

Certbot sur CentOS 7

Si vous n’avez pas le repo EPEL.

yum install epel-release

Et ensuite on installe certbot.

yum install python-certbot-apache

Si jamais vous souhaitez installer Let’s Encrypt avec nginx sous Centos :

yum install python2-certbot-nginx

Changer la zone DNS si besoin

Maintenant que tout est installé, sachez que Let’s Encrypt vérifie l’adresse IP du domaine sur lequel vous voulez l’installer. Par conséquent, vous devez utiliser un domaine existant et relié à votre serveur.

Pour cela, on utilise le Record A d’une zone DNS pour relier l’adresse IP et le nom de domaine.

Zone DNS OVH

Exemple de Record A pour SHZ

Générer un certificat Let’s Encrypt pour un domaine

Une fois ceci effectué, on peut lancer la génération de nos certificats HTTPS gratuits. On va même se payer le luxe de demander à Let’s Encrypt d’écrire la configuration pour nous dans les VHOSTs

Certificat SSL avec Apache HTTPD

certbot --apache -d security-helpzone.com

La directive –apache permet à Let’s Encrypt d’aller écrire dans le VirtualHost.

Voici les lignes générées dans le VHOST HTTPD.

SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/security-helpzone.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/security-helpzone.com/privkey.pem

...

SSLCertificateChainFile /etc/letsencrypt/live/security-helpzone.com/chain.pem

Certificat SSL avec nginx

Si vous utilisez nginx, la même chose existe

certbot --nginx -d security-helpzone.com

Voici les entrées SSL dans la configuration web nginx.

ssl_certificate "/etc/letsencrypt/live/security-helzone.com/cert.pem";
ssl_certificate_key "/etc/letsencrypt/live/security-helzone.com/privkey.pem";

Renouvelez automatiquement les certificats Let’s Encrypt

La durée des certificats HTTPS émise est de seulement 3 mois (90 jours).  Du coup, vous allez devoir renouveler périodiquement vos certificats.

nano /etc/crontab

J’y ai placé cette ligne, pour pouvoir ré-émettre les certificats tous les mois.

0 0 1 * * root certbot renew --quiet

Exemple de regénération de certificats pour nginx

[root@ns3367127 ~]# certbot renew --nginx
Saving debug log to /var/log/letsencrypt/letsencrypt.log

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Processing /etc/letsencrypt/renewal/security-helzone.com.conf
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cert is due for renewal, auto-renewing...
Plugins selected: Authenticator nginx, Installer nginx
Starting new HTTPS connection (1): acme-v02.api.letsencrypt.org
Renewing an existing certificate
Performing the following challenges:
http-01 challenge for security-helzone.com
Waiting for verification...
Cleaning up challenges

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
new certificate deployed with reload of nginx server; fullchain is
/etc/letsencrypt/live/security-helzone.com/fullchain.pem
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Congratulations, all renewals succeeded. The following certs have been renewed:
  /etc/letsencrypt/live/security-helzone.com/fullchain.pem (success)

Si jamais vous lancez la commande certbot renew sans devoir renouveler votre certificat, Let’s Ecnrypt vous affichera simplement : « Cert not yet due for renewal ».

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.