Passer un site en HTTPS

Dans un article précédent, j’expliquais comment migrer un site WordPress vers le protocole HTTPS et nous avions découvert que c’était simple comme bonjour, à la condition que votre hébergeur le permette.

Ici, il s’agit de rediriger systématiquement vers le protocole https un site écrit « from scratch », c’est à dire en HTML / CSS et autres langages, sans CMS ajouté.

Vérifier que votre hébergeur gère le HTTPS

Un hébergeur comme OVH propose un certificat SSL sans surcout. Voici à quoi ça ressemble dans l’espace client :

https ovh hébergement
Le certificat Let’s Encrypt est proposé gratuitement par la plupart des hébergeurs

Chez OVH, il ne faut pas oublier d’activer le SSL dans la rubrique Multisite :

https ovh hébergement
Vérifiez que le SSL soit bien activé pour le domaine

Si c’est le cas, il suffira de taper dans la barre d’adresses de votre navigateur votre site web avec le protocole HTTPS. Par exemple : https://monsite.fr

Miracle ! ça fonctionne. Le truc c’est que ça fonctionne aussi en http:// et il va falloir forcer toute requête en http vers le https.

Écrire le fichier .htaccess

Sous WordPress, quand on change les URL dans réglages généraux ou qu’on trifouille dans les permaliens, ça réécrit le fameux fichier .htaccess situé dans la racine de votre site web : le dossier www.

Si vous avez développé votre site « from scratch », il va falloir écrire le fichier .htaccess vous même.

.htaccess

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 

Déposez le fichier avec FileZilla dans le dossier www ou son parent, et l’affaire est réglée. Vous pouvez tester en tapant l’adresse de votre site en http://monsite.fr qui sera automatiquement réorienté vers https://monsite.fr

Contenu mixte

Vous vous croyiez sorti d’affaire, mais vous savez que la vie c’est : « je corrige un problème et un autre se présente », et en tant que « dev », je devrais évoquer la concaténation d’emmerdes. Mais comme vous le savez, un bon dev est un dev patient et déterminé.

Il se peut que vous ayez une notification de contenu mixte comme celle-ci :

https contenu mixte

Un contenu mixte signifie que vous êtes globalement en https, mais que certains de vos contenus relient des éléments non sécurisés.

Il s’agit des liens internes de votre site. Par exemple, vous avez mis une image dans une page avec une source http://

<img src="http://lesdocs.fr/pics/bidule.jpg">

Vous devez corriger chaque lien ou source en ajoutant un « s » au protocole http. Cela peut, par exemple, concerner des liaisons de polices de caractères dans les codes CSS. Vérifiez les valeurs des attributs src et href. Notez que les liens externes peuvent rester en http, surtout si vos cibles de liens n’ont pas encore migré vers le protocole sécurisé.

Pour corriger ces erreurs, n’hésitez pas à aller faire un tour dans la console du navigateur qui vous indiquera précisément les liens non sécurisés.

Passer un site en HTTPS - Les Docs