Security - Forcer le HTTPS avec HTTP Strict Transport Security (HSTS)
Alasta 15 Décembre 2018 security webserver cli security header
Description : Nous allons voir comment forcer son site Internet en HTTPS via le header HSTS.
Kézako HSTS
Il est maintenant indispensable de passer son site en HTTPS, car les navigateurs récents présentent votre site comme non sécurisé s’il n’est pas en HTTPS. Pour certains contenus cela ne pose pas de soucis.
Mais visuellement pour les utiliseurs non avertis (pas geek) c’est pas génial.
Il y a une solution facile à mettre en place (mais difficile lors du retour arrière s’il s’avère necessaire), c’est l’entête HSTS (HTTP Strict Transport Security) dans la configuration de votre serveur web.
Le fonctionnement
Il fonctionne de la manière suivante, à la première connnexion à votre site en HTTP, on le redirige vers le site en HTTPS, le navigateur récupère l’entête HSTS lui indiquant pendant combien de temps (en seconds) il devra forcer l’accès au site en HTTPS et si les sous-domaines du site sont inclus.
Peut importe le scheme (http, https) utilisé par l’utilisateur, le navigateur utilisera le HTTPS.
Il y a un le site hstspreload.org de Chrome qui permet de vérifier si votre sit
Les redirections
On part du principe que le même site est porté avec et sans www.
Si votre certificat sécurise votre domaine avec et sans www, appliquer ces redirections dans l’ordre suivant :
- http://domaine.tld => https://domaine.tld
- http://www.domaine.tld => https://www.domaine.tld
- https://domaine.tld => https://www.domaine.tld
Si le certificat ne protège que le www, voici les redirections à appliquer :
- http://domaine.tld => https://www.domaine.tld
- http://www.domaine.tld => https://www.domaine.tld
Exemple de configuration avec NGINX
Dans la partie HTTP :
Dans la partie HTTPS :
D’autres exemples d’implémentation.
Déploiement
- Position le HSTS max-age=300 (5 minutes) pendant une semaine le temps de corriger d’éventuelles problèmes.
- Passer le à 1 semaine (max-age=604800).
- Passer le à 1 mois (max-age=2592000).
Si l’on souhaite que cela domaine soit pré-cahrgé dans les navigateurs, on peut voir les exigences sur ce lien.
Plugins
Il y a le plugin PinPatrol qui est disponible sur Firefox et Chrome, … A COMPLETER.