Aller au contenu principal
Sécurité web dans l'UE : 10 étapes pour une meilleure note · Part 1

HSTS en 5 minutes : pourquoi 72% des sites web de l'UE laissent leurs utilisateurs exposés

HTTP Strict Transport Security empêche les attaques par dégradation — et manque sur trois sites web européens sur quatre. Voici comment l'activer.

· SiteGuardian

Partie 1 de la série « Sécurité web dans l'UE : 10 étapes pour une meilleure note »


Le problème en 30 secondes

Votre site web dispose d'un certificat TLS. Très bien. Mais quand un utilisateur tape http://votre-domaine.com — que se passe-t-il ?

Sans HSTS : Le navigateur se connecte en clair. Le site redirige vers HTTPS. Mais dans les millisecondes entre la requête HTTP et la redirection, un attaquant sur le même réseau (Wi-Fi d'un café, aéroport, hôtel) peut détourner la connexion. Man-in-the-middle, vol de cookies, détournement de session — tout cela est trivial.

Avec HSTS : Le navigateur sait déjà que ce domaine n'accepte que le HTTPS. Il se connecte directement de manière chiffrée. Pas de requête HTTP, pas de redirection, pas de fenêtre d'attaque.

Un en-tête. Une ligne. Et 72,4% des sites web européens ne l'ont pas.


Ce que disent les données

D'après le Benchmark SiteGuardian couvrant plus de 700 000 sites web européens :

  • 27,6% ont HSTS activé
  • 75,7% redirigent vers HTTPS — mais sans HSTS, la redirection est attaquable
  • 24,3% ne redirigent même pas, malgré un certificat valide

Cela signifie : trois sites web sur quatre disposant d'un certificat TLS ne l'utilisent pas de manière cohérente. Le certificat est là, la protection non.


Qu'est-ce que HSTS exactement ?

HTTP Strict Transport Security (RFC 6797) est un en-tête de réponse HTTP qui dit au navigateur :

« Connecte-toi à ce domaine pendant les X prochaines secondes exclusivement en HTTPS. Ignore complètement le HTTP. »

L'en-tête ressemble à ceci :

Strict-Transport-Security: max-age=31536000; includeSubDomains
  • max-age=31536000 — 1 an (en secondes). Le navigateur mémorise l'instruction pendant cette durée.
  • includeSubDomains — s'applique à tous les sous-domaines (api.votre-domaine.com, mail.votre-domaine.com, etc.)

Après la première visite, le navigateur se connecte directement en HTTPS à chaque requête suivante — sans le détour par HTTP.


Comment activer HSTS

Apache (.htaccess ou vhost.conf)

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

Prérequis : mod_headers doit être activé.

Nginx

add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;

Le always à la fin garantit que l'en-tête est envoyé même sur les pages d'erreur (4xx, 5xx).

Caddy

Caddy configure HSTS automatiquement lorsque HTTPS est actif. Rien à faire.

Node.js / Express

app.use((req, res, next) => {
  res.setHeader('Strict-Transport-Security', 'max-age=31536000; includeSubDomains');
  next();
});

Ou avec le package helmet :

const helmet = require('helmet');
app.use(helmet.hsts({ maxAge: 31536000, includeSubDomains: true }));

WordPress

Les plugins « Really Simple SSL » ou « HTTP Headers » activent HSTS en un clic. Alternativement, ajoutez-le dans le .htaccess (voir Apache ci-dessus).

Hébergement géré (Cloudflare, AWS, Platform.sh, etc.)

La plupart des hébergeurs ne configurent pas HSTS par défaut. Vérifiez votre tableau de bord sous « Paramètres SSL/TLS » ou « En-têtes HTTP ». Si l'option n'est pas disponible, créez un fichier .htaccess à la racine du site.


Trois erreurs à éviter

1. Définir un max-age trop court

max-age=86400 (1 jour) ne protège que les utilisateurs ayant visité le site dans les dernières 24 heures. Commencez par 30 jours (2592000), puis passez à 1 an (31536000) une fois que tout fonctionne.

2. Oublier includeSubDomains

Sans includeSubDomains, vos sous-domaines restent accessibles en HTTP. Si mail.votre-domaine.com ou intranet.votre-domaine.com n'ont pas de TLS, n'ajoutez includeSubDomains qu'une fois que tous les sous-domaines supportent HTTPS — sinon ils cesseront de fonctionner.

3. Activer HSTS sans une redirection HTTPS fonctionnelle

HSTS exige que votre site web soit réellement accessible en HTTPS. Testez avant d'activer : naviguez vers https://votre-domaine.com. Si vous voyez une erreur, corrigez d'abord la configuration du certificat TLS.


HSTS Preload : l'étape suivante

Lorsque HSTS fonctionne et que vous êtes certain que tous les sous-domaines supportent HTTPS, demandez l'inclusion dans la liste HSTS preload :

  1. Configurez l'en-tête ainsi : max-age=31536000; includeSubDomains; preload
  2. Soumettez votre domaine sur : hstspreload.org

La liste preload est intégrée dans Chrome, Firefox, Safari et Edge. Les domaines sur la liste sont toujours chargés en HTTPS — même lors de la toute première visite, avant que le navigateur n'ait jamais vu l'en-tête HSTS.


Lien avec NIS2 et le RGPD

HSTS n'est mentionné par son nom dans aucune loi. Mais :

  • NIS2 Art. 21(2)(d) exige la « sécurité dans l'acquisition, le développement et la maintenance des réseaux et systèmes d'information, y compris la gestion et la divulgation des vulnérabilités ». Un en-tête HSTS manquant est une vulnérabilité connue et trivialement exploitable.

  • RGPD Art. 32 exige des « mesures techniques appropriées » pour protéger les données personnelles. Le chiffrement du transport sans HSTS, c'est comme une serrure sans verrou — cela semble sécurisé, mais s'ouvre d'un seul geste.


Vérifiez votre domaine

Activez HSTS, attendez 5 minutes et analysez votre domaine :

https://siteguardian.io/scan

L'analyse vous montrera immédiatement si HSTS est correctement configuré, si includeSubDomains est actif et si votre domaine remplit les conditions pour la liste preload.


La semaine prochaine dans la Partie 2 : DMARC — de none à reject. Pourquoi policy=none ne protège personne, et comment atteindre une politique DMARC efficace en trois étapes.

Cet article fait partie de la série « Sécurité web dans l'UE : 10 étapes pour une meilleure note ». Données du SiteGuardian EU Web Security Benchmark couvrant plus de 700 000 sites web européens.

How does your website compare?

SiteGuardian scans your domain across six security dimensions — free, instant, no registration.

Scan your website

Sécurité web dans l'UE : 10 étapes pour une meilleure note

This article is part of a weekly series on EU web security best practices.

SiteGuardian

2026-04-13

RSS