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 :

return 301 https://$host$request_uri;

Dans la partie HTTPS :

add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";

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.

Annexes

RFC 6797 HSTS