PROJET AUTOBLOG


Korben

Site original : Korben

⇐ retour index

Sécuriser facilement et gratuitement un site avec HTTPS

jeudi 30 mars 2017 à 10:00

Vous connaissez sans doute tous, Let's encrypt qui permet d'avoir un certificat SSL gratuit pour basculer son site en HTTPS. Mais connaissez-vous Certbot, un outil proposé par l'EFF (Electronic Frontier Foundation) qui permet d'obtenir en une ligne de commande son certificat et de configurer dans la foulée son serveur web ?

Je n'avais pas encore pris le temps de le tester et je me dis que c'est l'occasion aujourd'hui de vous en faire un petit tuto rapide. Vous allez voir, c'est rapide, sans douleur et de toute façon, vous devrez tous y passer.

Voici donc comment migrer un site web (sous WordPress dans mon exemple, mais ça fonctionne avec tout) de HTTP vers HTTPS.

Première étape : Installer CERTBOT sur votre serveur.

Pour cela, téléchargez le script, rendez le executable et lancez-le :

wget https://dl.eff.org/certbot-auto

chmod a+x certbot-auto

Seconde étape : Générez les certificats.

Si comme moi, vous utilisez nginx, lancez la commande :

./certbot-auto --nginx

Et si vous utilisez Apache :

./certbot-auto --apache

Certbot va alors lister vos virtualhosts (les sites web présents sur votre serveur). Entrez les numéros de ceux que vous voulez migrer en HTTPS. Si c'est votre première fois, je vous invite à le faire site par site. Dans le cas d'un WordPress, pensez aussi à désactiver les plugins, car certains pourraient poser problème.

À partir de là, Certbot va générer les certificats Let's Encrypt qui vont bien et modifier la conf Apache / Nginx pour que ce soit le HTTPS qui soit activé par défaut pour votre site. Certbot vous demandera d'ailleurs si vous voulez passer exclusivement en HTTPS (2/ Secure) ou garder aussi une connexion HTTP (1/ Easy).

Je vous recommande de choisir l'option 2 pour éviter les contenus dupliqués. Certbot va encore prendre quelques secondes et voilà, la configuration est terminée. C'était facile non ? À vous de tester votre site en HTTPS maintenant. Il se peut que vous ayez un peu de "mixed content"... Pour le régler, vous devrez peut être corriger certains appels dans votre thème, parfois dans vos plugins, voire préciser votre URL en HTTPS dans votre fichier wp-config.php comme ceci :

define('WP_HOME','https://VOTRESITE.com');
define('WP_SITEURL','https://VOTRESITE.com');

Si malgré cela, vous remarquez que votre site reste accessible en HTTP aussi, éditez votre VirtualHost et décommentez la partie concernant les redirections 301 de HTTP vers HTTPS. Voici ce que j'ai comme exemple sous nginx :

Pour faire tester votre config SSL, vous pouvez aussi utiliser le service ssllabs dont j'ai déjà parlé, en utilisant cette URL :

https://www.ssllabs.com/ssltest/analyze.html?d=URLDEVOTRESITE.COM

3ème étape : Automatiser le renouvellement de vos certificats.

Attendez ne partez pas tout de suite, car vous devez savoir que votre certificat n'est valide que durant 90 jours. C'est comme ça. Mais pas de souci, avec Certbot, vous allez pouvoir le renouveler facilement via une simple commande.

On va d'abord tester un coup à blanc pour voir s'il n'y a pas de souci avec vos certificats et leurs éventuels renouvellements. Pour cela, entrez la commande suivante (pensez bien à préciser le chemin d'accès) :

./CHEMIN/VERS/certbot-auto renew --dry-run

Si tout se passe bien, éditez votre crontab :

crontab -e

Et ajoutez la ligne suivante pour lancer une vérification de vos certificats 2 fois par jour.

*/12 * * * * /CHEMIN/VERS/certbot-auto renew --quiet --no-self-upgrade

Et voilà cette fois c'est vraiment terminé. Vous pouvez oublier tout ça :-)

Je rappelle quand même que Let's Encrypt et Certbot sont gratuits, donc pensez à faire un don pour soutenir ces services.

Cet article merveilleux et sans aucun égal intitulé : Sécuriser facilement et gratuitement un site avec HTTPS ; a été publié sur Korben, le seul site qui t'aime plus fort que tes parents.