Bonjour à tous,

 

Aujourd’hui je vais vous montrer comment activer la fonction HSTS sur Nginx rapidement et pour tous vos virtualhosts présents et futurs.

 

Le HSTS, késako ?

Pour faire simple, le HSTS (HTTP Strict Transport Security) est un entête que nous pouvons rajouter sur les serveurs compatibles HTTPS pour que les échanges entre le visiteur et le serveur se fasse uniquement par le biais du protocole HTTPS.

Ces entêtes forces le navigateur du visiteur (si compatible) à utiliser automatiquement le protocole HTTPS lors de la prochaine visite sur le site. Si le protocole n’est pas disponible ou si le certificat est invalide alors le visiteur se retrouve bloqué par mesure de sécurité.

Cela permets notamment d’éviter les attaques man in the middle de type downgrade qui consiste à passer l’utilisateur victime en http pour pouvoir sniffer ses connexions avec le serveur.

 

Implémentation :

Sous Nginx, l’implémentation est simplissime. Il suffit d’une seule ligne de configuration pour que tous les sites gérés par le serveur soit protégés. Elle n’est pas belle la vie ? 🙂

Dans un premier temps, connectez vous en root sur votre serveur et lancez la ligne de commande suivante pour éditer la configuration de Nginx :

nano /etc/nginx/nginx.conf

 

Recherchez l’ouverture de la balise http { et mettez les lignes suivantes en dessous :

 #HSTS
 add_header Strict-Transport-Security "max-age=15768000; includeSubDomains";

 

Pour information, cette commande envoie l’entête HSTS à vos visiteurs en indiquant une durée de 1 an et en incluant les sous domaines.

Sauvegardez avec un petit Ctrl + O et redémarrez Nginx :

service nginx restart

 

Et voilà, vous venez d’implémenter HSTS sur Nginx avec cette simple modification 🙂

Vous pouvez tester le fonctionnement de HSTS avec le test de Qualys notamment, voilà ce que ça devraie vous donner :

hsts