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 wwww.
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 wwww, 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 :

1 return 301 https://$host$request_uri;

Dans la partie HTTPS :

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