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é :
- Protection contre le downgrade : empĂȘche les attaquants de forcer une connexion HTTP non sĂ©curisĂ©e. Toutes les requĂȘtes sont automatiquement converties en HTTPS.
- Ălimination du MITM : mĂȘme sur un rĂ©seau Wi-Fi non sĂ©curisĂ©, un attaquant ne peut pas intercepter la premiĂšre requĂȘte HTTP.
- Performance amĂ©liorĂ©e : Ă©vite la redirection HTTPâHTTPS. Le navigateur va directement en HTTPS, Ă©conomisant un aller-retour rĂ©seau.
- Confiance utilisateur : les navigateurs peuvent afficher un indicateur supplémentaire pour les sites avec HSTS, renforçant la confiance.
Configuration du Header HSTS
Le header HSTS se compose de plusieurs directives :
- max-age : durée en secondes pendant laquelle le navigateur doit forcer HTTPS. 31536000 (1 an) est recommandé.
- includeSubDomains : applique HSTS Ă tous les sous-domaines. Attention : tous vos sous-domaines doivent supporter HTTPS.
- preload : indique que vous souhaitez ĂȘtre ajoutĂ© Ă la preload list des navigateurs. Requiert les deux autres directives.
- Syntaxe complĂšte : Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
Ătapes de Configuration
Suivez ces étapes pour activer HSTS progressivement :
- Vérifiez HTTPS partout : assurez-vous que votre site et tous les sous-domaines fonctionnent correctement en HTTPS sans erreurs.
- Commencez avec un max-age court : utilisez max-age=300 (5 minutes) pour tester. Si tout fonctionne, augmentez progressivement.
- Ajoutez includeSubDomains : une fois certain que tous les sous-domaines supportent HTTPS, ajoutez cette directive.
- 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 :
- Progression graduelle : commencez avec un max-age court et augmentez progressivement. Une erreur avec un long max-age peut bloquer l'accĂšs Ă votre site.
- Testez tous les sous-domaines : avant d'ajouter includeSubDomains, vérifiez que CHAQUE sous-domaine a un certificat SSL valide.
- Planifiez le renouvellement SSL : avec HSTS, un certificat expiré est encore plus problématique. Assurez-vous que le renouvellement est automatique.
- Documentez votre configuration : notez quand vous avez activé HSTS et avec quels paramÚtres. La preload list est difficile à quitter.
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.
Liens utiles
PrĂȘt Ă dormir sur vos deux oreilles ?
Commencez gratuitement, sans carte bancaire.