HSTS : HTTP Strict Transport Security

Forcez les connexions HTTPS et protégez vos visiteurs contre les attaques de downgrade.

HSTS (HTTP Strict Transport Security) est un mécanisme de sécurité qui force les navigateurs à utiliser exclusivement HTTPS pour communiquer avec votre site. Une fois le header HSTS reçu, le navigateur refusera toute connexion HTTP pendant la durée spécifiée, même si l'utilisateur tape http:// explicitement.

HSTS protège contre plusieurs types d'attaques, notamment les attaques de l'homme du milieu (MITM) qui tentent de rétrograder la connexion de HTTPS vers HTTP. Sans HSTS, un attaquant sur un réseau Wi-Fi public pourrait intercepter la première requête HTTP avant la redirection vers HTTPS.

Ce guide explique comment configurer HSTS correctement, les précautions à prendre, et comment soumettre votre domaine à la preload list pour une protection maximale.

Avantages de HSTS

HSTS apporte plusieurs bénéfices de sécurité :

Configuration du Header HSTS

Le header HSTS se compose de plusieurs directives :

Étapes de Configuration

Suivez ces étapes pour activer HSTS progressivement :

  1. Vérifiez HTTPS partout : assurez-vous que votre site et tous les sous-domaines fonctionnent correctement en HTTPS sans erreurs.
  2. Commencez avec un max-age court : utilisez max-age=300 (5 minutes) pour tester. Si tout fonctionne, augmentez progressivement.
  3. Ajoutez includeSubDomains : une fois certain que tous les sous-domaines supportent HTTPS, ajoutez cette directive.
  4. Augmentez à 1 an et ajoutez preload : une fois stable, passez à max-age=31536000 et ajoutez preload pour soumission à la preload list.

Configuration Serveur HSTS

Voici comment configurer HSTS sur les serveurs courants :

# Nginx
server {
    listen 443 ssl http2;
    # ... configuration SSL ...

    # Header HSTS (ajuster max-age progressivement)
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
}

# Apache (.htaccess ou vhost)
<IfModule mod_headers.c>
    Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
</IfModule>

# PHP (dans votre application)
header("Strict-Transport-Security: max-age=31536000; includeSubDomains; preload");

# Vérification avec curl
curl -I https://example.com | grep -i strict

Le header doit être envoyé uniquement sur les réponses HTTPS (pas HTTP). Utilisez "always" dans Nginx pour l'inclure même sur les erreurs.

Bonnes Pratiques HSTS

Évitez les problèmes avec ces recommandations :

Checklist HSTS

  • Tous les sous-domaines supportent HTTPS
  • Pas de contenu mixte sur le site
  • Redirection HTTP→HTTPS en place
  • Header HSTS testé avec max-age court
  • max-age augmenté progressivement
  • Soumission à la preload list (optionnel)

Questions Fréquentes

Que se passe-t-il si mon certificat expire avec HSTS actif ?

Les visiteurs ne pourront plus accéder à votre site du tout. Le navigateur refusera toute connexion non-HTTPS et l'erreur SSL empêchera l'accès HTTPS.

Puis-je désactiver HSTS une fois activé ?

Vous pouvez envoyer max-age=0 pour demander aux navigateurs d'oublier HSTS. Mais les visiteurs qui ont déjà reçu l'ancien header devront attendre son expiration.

Qu'est-ce que la preload list ?

Une liste de domaines HSTS intégrée dans les navigateurs. Votre site sera en HTTPS dès la première visite, sans attendre le premier header.

Comment quitter la preload list ?

Soumettez une demande de suppression sur hstspreload.org. Le processus prend plusieurs mois car les mises à jour de navigateurs sont lentes.

HSTS fonctionne-t-il avec des sous-domaines dynamiques ?

Oui, mais chaque sous-domaine doit avoir un certificat valide. Un wildcard SSL est recommandé dans ce cas.

MoniTao vérifie-t-il le header HSTS ?

MoniTao vérifie la validité du certificat SSL. Pour HSTS, utilisez securityheaders.com pour analyser vos headers de sécurité.

Sécurisez avec HSTS

HSTS est une couche de sécurité essentielle pour tout site HTTPS. Configurez-le progressivement et avec précaution pour éviter de bloquer l'accès à votre site.

Avec HSTS et la surveillance SSL de MoniTao, votre site est protégé contre les attaques de downgrade et vous êtes alerté avant toute expiration de certificat.

Prêt à dormir sur vos deux oreilles ?

Commencez gratuitement, sans carte bancaire.