Au-delà du HTTP et du HTTPS : Le HSTS


Qu’est-ce que le HSTS ?

Depuis plusieurs mois, HTTPS est devenu la norme, au détriment du protocole HTTP. Dès lors, et notamment pour des raisons évidentes de conservation des positions SEO, de nombreux sites ont été contraints d’opérer des redirections 301 depuis leurs anciennes URLs en HTTP vers leurs nouvelles adresses en HTTPS. Mais ces redirections créent un problème de sécurité.

En effet, un navigateur qui appelle une URL sans protocole va par défaut consulter la version HTTP. Le temps de redirection vers le protocole correct peut être mis à profit par des hacker pour pirater votre site. Un « Man-In-The-Middle » ou MITM peut remplacer la certification au moment de la communication client-serveur, créant ainsi une faille de sécurité.

C’est pourquoi on parle ici du HTTP Strict Transport Security (HSTS). Il s’agit d’un protocole qui va forcer le passage de tous les protocoles HTTP en HTTPS.

HSTS est-il une bonne chose pour le SEO ?

Oui, car outre le fait de sécuriser le site, il fait gagner un temps précieux de réponse. En effet, HSTS agit comme une sorte de pontage qui va shunter la redirection en indiquant au navigateur qu’il doit directement consulter le HTTPS, sans passer par le HTTP qui enverrait un requête serveur 301 …

De plus, lors des « bidouillages » des redirections, des oublis sont possibles. Alors que sans HSTS, les 2 protocoles peuvent coexister, avec HSTS votre site est obligatoirement full-HTTPS. C’est une bonne et une mauvaise nouvelle : Le site va être parfaitement HTTPS, mais cela nécessite de la rigueur, des contrôles et plus de travail.

Google utilise cette technique sur ses propres pages, c’est vous dire 😉

Comment mettre en place HSTS ?

HSTS est défini par le serveur.

Les hébergeurs tels que OVH n’incitent pas à l’installation du HSTS, car ils n’ont pas la main sur les codes implémentés. De plus, ils alertent sur 2 cas lors desquels son utilisation est problématique :

  • Les sites avec du mixed content en HTTPS seraient forcément hors service
  • Les sites avec des redirections forcés en HTTP (on en voit de temps en temps) seraient aussi hors service.

Le code adéquat à placer en entête est le suivant :

Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

“includeSubDomains“ permet ici d’inclure tous les sous-domaines au protocole HSTS

“max-age” permet quant à lui d’indiquer pour combien de temps les directives HSTS sont à respecter pour le navigateur, en secondes. Au-delà, il sera possible au navigateur d’appeler le protocole HTTP ou d’accepter des certificats auto-signés.

<

ou contactez-nous au