Ce petit tuto est destiné pour vous aider à mettre en place un systeme de certification SSL pour sécuriser vos site en les passant en HTTPS. Je vous conseille de garder un oeil sur le blog officiel de Let’s Encrypt (EN) pour suivre les mises à jour ou tout autre annonce.
Hello
De nos jours, ce devient très tendance d’avoir un site en HTTPS. même si je pense que c’est quelque chose de bénéfique pour la santé du web, cet engouement est malheureusement motivé par autre chose. En effet, Google “oblige” maintenant les webmasters et les marques à avoir un site en HTTPS. L’obligation est implicite mais bien présente, puisqu’un site en HTTPS “recevrait” un boost dans les rankings. Rien que ça, ça suffit à en motiver plus d’un.
Alors de quoi parle-t-on exactement ? de certificat SSL pour sécuriser les transactions entre un navigateur et un serveur. Sans tomber dans les travers techniques, j’ai repris cette définition du site d’OVH :
La Technologie SSL (Secure Socket Layer) est utilisée pour sécuriser la transmission de données sur Internet: elle chiffre et protège les données transmises à l’aide du protocole HTTPS . Le SSL garantit aux visiteurs de votre site web que leurs données ne seront pas interceptées de manière frauduleuse. En savoir plus
Il existe beaucoup de services payants qui permettent d’avoir un certificat installé moyennant quelques euros/dollars. Mais de nos jours, il existe beaucoup de solutions gratuites permettant d’offrir ce genre de services.
Je vais vous montrer comment installer en 5 minutes votre certification SSL et avoir par la même occasion un site sécurisé en HTTPS. Pour se faire, nous allons utiliser le service Let’s Encrypt
L’installation se fait sur Ubuntu 14.04 et Apache. Pour les autres distribution de Linux ou serveur web, la configuration peut varier.
Tout d’abord, nous allons télécharger le client Let’s Encrypt qui s’appelle certbot-auto. Nous allons le télécharger vers le dossier /usr/local/sbin
donc :
apt-get install certbot
A ce stade, nous obtenons une version fonctionnelle de certbot-auto sur notre serveur. La dernière commande s’assure de donner les droits en executions à tous.
Pour installer une certification SSL pour un site, il suffit de tapper la commande suivante :
certbot-auto --apache
Ci-dessous example.com est le site à sécuriser. vous pouvez stipuler un sous domaine aussi sans problème. si vous avez plusieurs domaines à sécuriser d’un coup, vous pouvez tout à fait le faire en utilisant l’option -d suivi du domaines comme ceci :
Attention, vos hôtes virtuels doivent etre actif (/etc/apache2/site-enabled) pour que le parametrage de redirection fonctionne correctement. (vous pouvez tous de même le faire aprés)
certbot-auto --apache -d example.com -d blog.example.com
Une fois la commande lancée, vous allez être guidés pas à pas: on vous demandera :
- un email pour recevoir les alertes de sécurités et les emails de relance en cas de perte des clés
- d’accepter les conditions générales
- de choisir entre garder les deux versions en parallel (http et https) ou rediriger le http vers le https.
remarquez que si vous choisissez la première solution, vous aurez potentiellement du duplicate content puisque votre site sera dupliqué en https. Si vous choisissez la solution 2, alors une redirection 301 sera faite lorsqu’on appelle une URL en http. pour se faire, un fichier de configuration apache sera crée avec des règles de redirections.
Et voila, si tout se passe bien, votre site passera instantanément en HTTPS.
Attention cependant à gérer vos ressources (css, js, images, fonts…) car un site en https enverra des erreurs sur l’ensemble des ressources appellées en http. il faut donc soit mettre à jour vos liens vers vos fichiers statiques en les précédents par https:// ou alors appeler toutes vos ressources en préfixant par // (compatible HTTP et HTTPS)
Vous pouvez toujours tester le niveau de sécurité que vous venez d’avoir. pour cela, il faut aller sur le site
https://www.ssllabs.com/ssltest/analyze.html?d=example.com
en remplaçant example.com par votre nom de domaine.
sur mon site: www.le-geek.com que je viens tout juste de passer en https, j’ai ça
-
Pour revoker un certificat:
certbot revoke --cert-path /etc/letsencrypt/live/domain.tld/cert.pem
certbot delete --cert-name domain.tld
Comme vous pouvez vous en douter, le service n’est pas valable ad vitam eternam. En fait, la certification est valable 90 jours seulement. il faut donc renouveler le certificat tous les 3 mois.
La encore Let’s Encrypt à pensé à tout. Il a mis en place en effet une commande toute simple qui permet de renouveler le service. Pour cela, rien de plus simple, il suffit de lancer la commande :
certbot-auto renew
Evidement, vous n’allez pas vous mettre des petites notes pour vous rappeler de renouveler vos services, nous allons mettre à jour le service cron de linux pour gérer ça pour nous.
Pour cela, il suffit d’éditer le fichier crontab et de rajouter une vérification hebdomadaire pour gérer ça :
sudo crontab -e 30 2 * * 1 /usr/local/sbin/certbot-auto renew >> /var/log/le-renew.log
Cette commande va lancer la commande
letsencrypt-auto renew
tous les premier jours de chaque semaine (donc lundi) à 2:30 du matin et renouveler tous les services expirés. Les logs de la commande seront stockés dans le fichier /var/log/le-renew.log
Ce guide est valable pour les serveurs web Apache2 sur Ubuntu 14.04 si vous êtes sur un autre serveur/distribution, je vous conseil de lire le manuel de digital ocean qui traite le sujet de manière plus complete.
Enjoy.
Site d'origine : https://www.le-geek.com/passer-votre-site-en-https-gratuitement-avec-lets-encrypt/