Qu’est-ce que HSTS et comment l’activer sur Nginx ?

Didacticiel Vidéo:

Qu’est-ce que le HSTS ?

HSTS est l’abréviation de HTTP Strict Transport Security. HSTS indique aux navigateurs web qu’ils doivent toujours interagir avec le serveur via https.

Nous voyons de plus en plus de sites Web servir du contenu en HTTPS. Les sites Web https normaux utilisent la redirection permanente 301 pour rediriger les requêtes http non sécurisées vers https. Par exemple, chaque fois que vous tapez l’URL suivante dans la barre d’adresse du navigateur,

http://www.linuxbabe.com

vous serez redirigé vers

https://www.linuxbabe.com

Cette redirection est effectuée du côté du serveur. Lorsque le serveur reçoit une demande http, il renvoie un message au navigateur lui indiquant que la demande http a été abandonnée par le serveur et que le navigateur doit envoyer une demande https.

Le HSTS indique aux navigateurs web de rediriger en interne les requêtes http vers https à l’avenir. Donc maintenant, la redirection est faite du côté du navigateur.

HSTS indique aux navigateurs de choisir par défaut le protocole https lorsque l’utilisateur ne le spécifie pas. Si le HSTS n’est pas activé sur www.linuxbabe.com, lorsqu’un utilisateur saisit le texte suivant dans la barre d’adresse :

www.linuxbabe.com

Le navigateur va d’abord essayer d’envoyer une requête http au serveur.

Si le système HSTS est activé sur www.linuxbabe.com, et qu’un utilisateur saisit www.linuxbabe.com dans la barre d’adresse du navigateur, ce dernier essaiera d’abord d’envoyer une demande https au serveur.

HSTS permet de réduire le temps d’aller-retour et la charge du serveur, tout en empêchant les attaques de type "man in the middle".

Activer HSTS sur Nginx

Ouvrez le fichier de configuration de votre hôte virtuel Nginx. Dans le bloc serveur, ajoutez la ligne suivante :

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

Comme ci-dessous :

server {listen 443 ssl;server_name www.linuxbabe.com;add_header Strict-Transport-Security "max-age=63072000 ; includeSubdomains ; preload" ;......

Enregistrez et fermez le fichier. Puis rechargez la configuration de Nginx.

sudo service nginx reload ou sudo sytemctl reload nginx

Vérifiez si le HSTS fonctionne

Outils de développement de Google Chrome

Dans Google Chrome, appuyez sur la touche F12 pour ouvrir les outils de développement, cliquez sur l’onglet réseau. Saisissez ensuite votre nom de domaine avec le schéma http :

http://www.linuxbabe.com

Vous verrez dans l’onglet réseau que la première requête http est redirigée en interne par Google Chrome et qu’elle ne va jamais sur le fil. Le code de statut 307 signifie une redirection interne.

HSTS preload

Scroll to Top