HSTS permet à un site web en HTTPS de notifier au navigateur web qu’il doit toujours revenir le voir en HTTPS et non en HTTP.
Concrètement, ça prend la forme d’une entête spéciale envoyée par le serveur lors de la consultation d’une page web en HTTPS. Donc il faut que votre visiteur visite au moins une fois votre site web en HTTPS pour que la règle soit prise en compte.
Pour l’activer sur Apache, rajoutez cette ligne à votre virtualhost SSL :
Header add Strict-Transport-Security: "max-age=15768000; includeSubdomains"
PS: vous devez avoir le module Apache headers actif.
mouais, perso je préfère laisser le choix à l’utilisateur de se connecter via http ou https, c’est un peu ironique d’obliger l’accès à https pour protéger sa liberté, sa sécurité et sa vie privée.
A vrai dire, la solution « old school » certes un peu bourrine me semble meilleure : faire une redirection 301 vers le site HTTPS. Ça a l’avantage de marcher avec tous les navigateurs, pas seulement ceux compatibles HSTS, indépendamment de tout TTL (même s’il est grand), même lors de la première visite.
En fait, je suppose que HSTS doit avoir un intérêt, puisqu’il a été mis en place, mais pour le moment, je ne le saisis pas =/
Concernant le commentaire de Vincent :
Certains sites peuvent marcher en HTTP ou HTTPS (notamment pour les temps de chargement par exemple, surtout si c’est un contenu public type images / son / vidéos), certains uniquement en HTTPS (ex : un webmail d’entreprise, ou un webmail tout court, d’ailleurs ;-)
En résumé, ce n’est pas une question de point de vue philosophique de l’administrateur, les besoins sont d’abord définis par la nature et les contraintes du site-même =)
Ping Nginx: enable HSTS (force SSL for users) | Deimosfr Blog
fabuleux post, merci beaucoup.