Let's encrypt !

Retour aux articles Dans #blog le 15/03/2017 par Emmanuel BALLERY

Let's encrypt !

Auparavant, la mise en place de sites sécurisés sur internet était très complexe : bureaucratie importante, charges financières concidérables, configuration des serveurs compliquée, gestion de l'expiration des certificats longues ... Pour généraliser l'usage du chiffrement TLS, Let's Encrypt (LE) s'est lancé en 2015 comme autorité de certification fournissant des certificats gratuits avec un processus automatisé de création et de renouvellement.

En février 2017, Let's encrypt était utilisé par 13,70% du total des domaines français enregistrés.

En 2017, j'ai donc basculé 100% des mes applications en https:// gratuitement. Voici un retour d'expérience. Dans mon cas, je vais parler exclusivement d'un environnement Apache sous Ubuntu. Adaptez à votre besoin !

Démarrage avec Let's Encrypt

J'ai décidé de procéder à cette migration un peu tardivement, voulant m'assurer que la solution était mature. Beaucoup de retour "négatifs" trouvés ici et là m'ont freinés, mais se sont avérés anciens et dépassés, d'une époque ou Let's Encrypt était en beta test. Direction donc le site de Let's Encrypt, qui vous conseille, lorsque vous avez accès à la ligne de commande sur votre serveur, d'utiliser un client qui s'occupera de tout pour vous. Ca tombe bien, on est fainéant. Par défaut, il conseille Certbot - en précisant bien que d'autres clients peuvent faire l'affaire. Dans mon cas j'ai sélectionné Certbot - sans regrès à ce jour.

Recommandation LE Certbot

Installation du client Certbot

Le site de Certbot va aussi droit au but : choisissez votre serveur web et votre OS et il vous donne la procédure à suivre. Dans le cas de machines Linux, il vous suffira d'installer des paquets - via les dépôts Debian directement ou en ajoutant un ppa si nécessaire. Jusque là, on reste sur du copier/coller et c'est relativement plaisant.

Procédure Certbot

Sous Ubuntu 16.04 pour Apache ça nous donne :

Utilisation du client Certbot

Première installation

Une commande vous permet de générer des certificats et d'éditer votre configuration Apache pour refléter ces modifications. Cette commande est interactive.

1. Elle modifie vos VirtualHosts existant pour rediriger vers https:// en gérant aussi les alias ;

2. Elle crée de nouveaux VirtualHosts pour répondre en https:// et préciser le certificat à utiliser ;

Si vous n'êtes pas trop serin à l'idée de laisser le client modifier vos fichiers pour vous, il vous suffit d'ajouter l'option certonly pour qu'il ne fasse que générer les certificats - à vous de modifier vos configurations Apache après la génération :

Une fois cette génération terminée, si vous n'avez pas laissé Certbot faire le travail pour vous, vous devrez configurer vos VirtualHosts en paramétrant notamment les directives SSLCertificateFile et SSLCertificateKeyFile.

Tester la configuration

Pour tester votre configuration, je vous invite à aller à l'adresse suivante :

https://www.ssllabs.com/ssltest/analyze.html

Vous y entrez votre domaine, et il crée un rapport sur l'état de votre configuration TLS. Ces rapports sont relativement indigestes mais ont le bon goût de vous donner un aperçu sur les modifications que vous venez d'apporter.

Rapport TLS

Renouvellement

Le paquet Certbot que vous avez installé met en place une tâche cron qui renouvelle vos certificats automatiquement : vous n'avez donc rien à faire ... Ces certificats sont valides 90 jours, et la tâche cron tourne 2 fois par jour. Cette tâche se trouve dans le fichier /etc/cron.d/certbot.dpkg-dist et s'éxécute à minuit et midi chaque jour. Le client tentera de renouveler tous les certificats qui expirent dans moins de 30 jours. Autre gros avantage, Let's Encrypt vous informe de l'expiration proche d'un certificat par email !

Hello,

Your certificate (or certificates) for the names listed below will expire in 19 days (on XX Xxx XX XX:XX +XXXX).

Please make sure to renew your certificate before then, or visitors to your website will encounter errors. mon-super-domaine.com.

For any questions or support, please visit https://community.letsencrypt.org/. Unfortunately, we can't provide support by email. For details about when we send these emails, please visit https://letsencrypt.org/docs/expiration-emails/. In particular, note that this reminder email is still sent if you've obtained a slightly different certificate by adding or removing names. If you've replaced this certificate with a newer one that covers more or fewer names than the list above, you may be able to ignore this message.

Regards,

The Let's Encrypt Team

Si jamais vous souhaitez renouveler vos certificats "à la main", la commande à jouer est la suivante - l'argument --dry-run permet de tester :

Retour aux articles