Tutoriels11 décembre 2025 10 min de lecture

Guide d'Implémentation HSTS : HTTP Strict Transport Security

Implémentez HSTS correctement. Configuration, préchargement et précautions pour une protection maximale contre les attaques de downgrade.

WizStatus Team
Auteur

HTTP Strict Transport Security (HSTS) protège les sites web contre les attaques de downgrade de protocole et le détournement de cookies. C'est un mécanisme de sécurité essentiel.

Quand un navigateur visite un site avec HSTS activé, il se souvient de toujours utiliser HTTPS, éliminant la fenêtre de vulnérabilité de la première connexion.

Qu'est-ce que HSTS

HSTS est une politique de sécurité web déclarée via l'en-tête de réponse HTTP Strict-Transport-Security.

Comment ça fonctionne

  1. Le navigateur reçoit l'en-tête HSTS lors d'une connexion HTTPS
  2. Il enregistre que ce domaine ne doit être accédé que via HTTPS
  3. Les requêtes HTTP suivantes sont automatiquement mises à niveau vers HTTPS
  4. Le navigateur refuse de se connecter en HTTP, même si l'utilisateur le demande

Syntaxe de l'en-tête

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

Directives :

  • max-age : durée en secondes de mémorisation de la politique
  • includeSubDomains : applique la politique à tous les sous-domaines
  • preload : indique l'intention de soumettre à la liste de préchargement
L'en-tête HSTS n'est respecté que s'il est reçu via une connexion HTTPS valide. Il est ignoré sur HTTP.

Pourquoi HSTS Est Critique

HSTS adresse des faiblesses fondamentales dans le modèle de sécurité HTTPS standard.

Le problème de la première connexion

Sans HSTS, la première visite d'un site se fait souvent via HTTP :

  • Les utilisateurs tapent des noms de domaine sans préfixes de protocole
  • Cette requête HTTP est interceptable
  • Un attaquant peut exécuter une attaque SSL stripping

Attaques SSL stripping

L'attaque fonctionne ainsi :

  1. L'attaquant intercepte la requête HTTP initiale
  2. Au lieu de rediriger vers HTTPS, il maintient une connexion HTTP avec la victime
  3. Il communique en HTTPS avec le serveur légitime
  4. La victime pense être sur le vrai site, mais en HTTP non chiffré

HSTS prévient cela car le navigateur n'enverra jamais de requêtes HTTP après avoir reçu l'en-tête.

Détournement de cookies

Sans HSTS, les cookies peuvent être envoyés via des connexions HTTP non sécurisées, même si le flag Secure n'est pas défini. HSTS assure que les cookies ne sont envoyés que via HTTPS.

Sans HSTS, même les sites avec des redirections HTTPS restent vulnérables aux attaques de downgrade.

Comment Implémenter HSTS

L'implémentation HSTS nécessite une planification soigneuse pour éviter de verrouiller les utilisateurs.

Prérequis

Avant d'activer HSTS :

  • Tout votre site doit fonctionner via HTTPS
  • Toutes les ressources (images, scripts, CSS) doivent être en HTTPS
  • Tous les sous-domaines inclus doivent supporter HTTPS
  • Testez extensivement avant d'activer

Déploiement progressif

Étape 1 : Test avec un court max-age

Strict-Transport-Security: max-age=300

5 minutes permettent de détecter les problèmes sans conséquences durables.

Étape 2 : Augmentation progressive

Strict-Transport-Security: max-age=3600     # 1 heure
Strict-Transport-Security: max-age=86400    # 1 jour
Strict-Transport-Security: max-age=604800   # 1 semaine
Strict-Transport-Security: max-age=31536000 # 1 an

Étape 3 : Ajout de includeSubDomains

Strict-Transport-Security: max-age=31536000; includeSubDomains
N'activez includeSubDomains que si TOUS les sous-domaines supportent HTTPS, y compris ceux que vous avez peut-être oubliés.

Configuration Nginx

server {
    listen 443 ssl http2;
    server_name example.com;

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

    # Reste de la configuration SSL...
}

# Redirection HTTP vers HTTPS
server {
    listen 80;
    server_name example.com;
    return 301 https://$server_name$request_uri;
}

Configuration Apache

<VirtualHost *:443>
    ServerName example.com

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

    # Reste de la configuration SSL...
</VirtualHost>

# Redirection HTTP vers HTTPS
<VirtualHost *:80>
    ServerName example.com
    Redirect permanent / https://example.com/
</VirtualHost>

Préchargement HSTS

Le préchargement HSTS intègre votre domaine dans une liste incluse dans les navigateurs, protégeant même la première connexion.

Exigences pour le préchargement

  • Certificat SSL valide
  • Redirection de HTTP vers HTTPS sur le même hôte
  • Tous les sous-domaines servis en HTTPS
  • En-tête HSTS avec :
    • max-age d'au moins 31536000 secondes (1 an)
    • Directive includeSubDomains
    • Directive preload

En-tête pour le préchargement

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

Soumission

Soumettez votre domaine sur hstspreload.org après avoir vérifié que toutes les exigences sont remplies.

Le préchargement est difficile à annuler. La suppression prend des mois et plusieurs versions de navigateur. Réfléchissez bien avant de soumettre.

Bonnes Pratiques et Précautions

Implémentez HSTS en toute sécurité avec ces recommandations.

À faire

  • Commencer avec de courtes valeurs max-age
  • Tester minutieusement avant d'activer includeSubDomains
  • Documenter votre configuration HSTS et les sous-domaines couverts
  • Avoir des procédures de renouvellement de certificat robustes
  • Surveiller les expirations de certificat de près

À éviter

  • Activer HSTS sans avoir testé HTTPS sur tout le site
  • Utiliser includeSubDomains sans vérifier tous les sous-domaines
  • Activer le préchargement sans comprendre les implications
  • Ignorer les alertes d'expiration de certificat

Impact des certificats expirés avec HSTS

Avec HSTS activé, un certificat expiré signifie une indisponibilité complète :

  • Les utilisateurs ne peuvent pas contourner l'avertissement de certificat
  • Le site est totalement inaccessible
  • La seule solution est de renouveler le certificat
Surveillez vos certificats encore plus rigoureusement quand HSTS est activé. Une expiration = une panne totale.

Vérification de la configuration

# Vérifier l'en-tête HSTS
curl -I https://example.com | grep -i strict

# Test complet avec SSL Labs
# https://www.ssllabs.com/ssltest/

Conclusion

HSTS est un mécanisme de sécurité critique qui protège contre les attaques de downgrade. Une implémentation correcte nécessite une planification soigneuse : tests HTTPS complets, déploiement graduel et considération réfléchie du préchargement.

Les risques de mauvaise implémentation sont significatifs car une mauvaise configuration peut rendre votre site inaccessible. Suivez une approche méthodique.

WizStatus surveille vos certificats SSL et alerte sur les expirations imminentes - particulièrement important avec HSTS où les problèmes de certificat causent une indisponibilité totale plutôt que de simples avertissements.

Articles connexes

Certificate Transparency : Surveillance des Émissions de Certificats
Sécurité

Certificate Transparency : Surveillance des Émissions de Certificats

Comprenez Certificate Transparency et les CT logs. Détectez les certificats non autorisés et renforcez la sécurité de vos domaines.
8 min de lecture
Comment Recevoir des Rappels Email d'Expiration SSL
Sécurité

Comment Recevoir des Rappels Email d'Expiration SSL

Ne laissez plus jamais un certificat SSL expirer. Configurez des rappels automatiques par email pour l'expiration SSL et évitez les avertissements de sécurité.
7 min de lecture
Let's Encrypt : Surveillance et Automatisation Complète
Tutoriels

Let's Encrypt : Surveillance et Automatisation Complète

Maîtrisez Let's Encrypt avec la surveillance et l'automatisation. Configuration, renouvellement automatique et dépannage des problèmes courants.
12 min de lecture

Commencez à surveiller votre infrastructure dès aujourd'hui

Mettez ces conseils en pratique avec le monitoring WizStatus.

Essayer WizStatus Gratuitement