Il est largement admis que le protocole HTTPS est beaucoup plus sûr que le protocole HTTP. Toutefois, si vous rencontrez le message « HSTS missing from HTTPS server », ce protocole peut mettre votre site en danger.
Heureusement, il est possible de combler cette grave faille de sécurité. Même si vous n’avez pas rencontré ce message d’erreur, tout site qui redirige de HTTP vers HTTPS est vulnérable à cet exploit. Par conséquent, il est toujours sage d’adopter une approche proactive et de corriger cette faille.
Dans cet article, nous allons explorer ce qu’est l’erreur « HSTS missing from HTTP server » et pourquoi elle est si préoccupante pour tout site web qui utilise des redirections HTTPS. Nous vous montrerons ensuite comment corriger ce problème et déjouer les pirates, en cinq étapes faciles.
Consultez notre guide vidéo pour corriger l’erreur « HSTS Missing From HTTP Server »
Une introduction à l’erreur « HSTS Missing From HTTP Server »
Pour assurer la sécurité des visiteurs, il n’est pas rare que les sites effectuent une redirection HTTPS. Cette redirection fait passer les visiteurs d’une version HTTP à une version HTTPS du site web.
Un utilisateur peut explicitement saisir HTTP dans la barre d’adresse de son navigateur, ou suivre un lien qui pointe vers une version HTTP du site. Dans ces scénarios, une redirection peut empêcher des tiers malveillants de voler les données du visiteur.
Cependant, aucune technologie n’est parfaite. Si votre site utilise des redirections HTTPS, vous pouvez être sensible à une attaque de type Man-In-The-Middle (MITM) connue sous le nom de Secure Sockets Layer (SSL) Stripping. Dans le cadre de cette attaque, le pirate bloque la demande de redirection et empêche le navigateur de charger votre site via le protocole HTTPS. En conséquence, le visiteur accédera à votre site web via HTTP, ce qui facilite grandement le vol de données par les pirates.
Alternativement, le pirate peut intercepter la redirection et rediriger les visiteurs vers une version clonée de votre site. À ce stade, le pirate peut voler toutes les données que l’utilisateur partage, y compris les mots de passe et les informations de paiement. Certains pirates peuvent également essayer d’inciter les visiteurs à télécharger des logiciels malveillants.
Il est également possible pour les pirates de voler un cookie de session via une connexion non sécurisée, dans une attaque connue sous le nom de détournement de cookie. Ces cookies peuvent contenir une multitude d’informations, notamment des noms d’utilisateur, des mots de passe et même des détails de cartes bancaires.
Pour protéger vos visiteurs contre ces attaques, nous vous recommandons d’activer le protocole HTTP Strict Transport Security (HSTS). Ce protocole oblige le navigateur à ignorer toute demande directe et à charger votre site via HTTPS.
Le protocole HSTS (et pourquoi vous pourriez vouloir l’utiliser)
HSTS est une directive de serveur et une politique de sécurité web. Spécifié par l’Internet Engineering Task Force (IETF) dans la RFC 6797, HSTS définit des règles sur la manière dont les agents utilisateurs et les navigateurs web doivent gérer leurs connexions pour un site fonctionnant en HTTPS.
Parfois, une analyse de sécurité informatique peut signaler que votre site est « missing HSTS » ou « HTTP Strict Transport Security ». Si vous rencontrez cette erreur, votre site n’utilise pas HSTS, ce qui signifie que vos redirections HTTPS peuvent mettre vos visiteurs en danger.
Cette vulnérabilité est classée comme étant à risque moyen. Cependant, elle est incroyablement courante et représente un fruit à portée de main pour les attaquants. Si vous rencontrez cette erreur, il est crucial de la corriger.
En ajoutant Security Headers HSTS à votre serveur, vous pouvez forcer votre site à se charger sur le protocole HTTPS. Cela peut contribuer à protéger votre site contre le détournement de cookies et les attaques de protocole. Puisque vous supprimez potentiellement une redirection de la procédure de chargement, votre site peut également se charger plus rapidement.
Il est possible que vous n’ayez pas rencontré cette erreur mais que vous soyez toujours préoccupé par le HSTS. Si vous n’êtes pas sûr que le HSTS soit activé, vous pouvez analyser votre site à l’aide d’un outil tel que Security Headers. Il suffit de saisir l’URL de votre site Web, puis de cliquer sur Scan.
Security Headers vérifiera votre site et affichera tous les en-têtes appliqués dans la section Headers. Si Strict-Transport-Security fait une apparition, alors votre site est protégé. Toutefois, si cet en-tête n’est pas répertorié, nous avons du travail à faire.
Comment corriger l’erreur « HSTS Missing From HTTP Server » (en 5 étapes)
Pour les pirates, la vulnérabilité HSTS est l’occasion idéale de voler des données ou d’inciter vos visiteurs à effectuer des actions dangereuses. Voici comment activer la politique HSTS et assurer la sécurité de votre site.
Étape 1 : Créez une sauvegarde manuelle
L’activation de la politique HSTS représente un changement important pour votre site web. Pour cette raison, nous vous recommandons de créer une sauvegarde à la demande avant de procéder. Cela vous donne la possibilité de restaurer votre site dans le cas peu probable où vous rencontreriez des problèmes lors de l’activation de HSTS.
Chez Kinsta, nous fournissons des sauvegardes automatiques quotidiennes de WordPress. Cependant, il est toujours judicieux de créer une sauvegarde manuelle avant d’effectuer des changements majeurs. Pour créer ce filet de sécurité, connectez-vous à votre tableau de bord MyKinsta et sélectionnez le site web en question. Ensuite, cliquez sur l’onglet Sauvegardes.
Ensuite, sélectionnez l’onglet Manuelle. Trouvez le bouton Sauvegarder maintenant, et cliquez dessus.
Vous pouvez maintenant ajouter une courte note à votre sauvegarde. Cela peut vous aider à l’identifier dans votre tableau de bord MyKinsta.
Enfin, cliquez sur « Créer une sauvegarde ». Nous allons maintenant générer votre sauvegarde et l’ajouter à votre tableau de bord.
Étape 2 : Configurez une redirection HTTP vers HTTPS
Avant d’activer la politique HSTS, vous devez déployer un certificat SSL sur votre site web. Chez Kinsta, nous protégeons automatiquement tous les domaines vérifiés avec notre intégration Cloudflare. Cela inclut des certificats SSL gratuits avec prise en charge de wildcard. À moins que vous n’ayez spécifiquement besoin d’un certificat personnalisé, vous n’aurez pas à vous soucier de configurer SSL manuellement.
Ensuite, vous devrez configurer une redirection HTTP vers HTTPS, si ce n’est pas déjà fait. Pour créer cette redirection, connectez-vous simplement à votre tableau de bord MyKinsta et sélectionnez votre site web. Ensuite, cliquez sur Outils.
Dans la section Forcer HTTPS, cliquez sur le bouton Activer. Vous pouvez maintenant choisir d’utiliser votre domaine principal comme destination, ou demander à utiliser un domaine alternatif. Après avoir pris cette décision, sélectionnez Forcer HTTPS.
Sachez que si vous utilisez des proxys tiers ou si vous configurez des règles HTTPS personnalisées, le fait de forcer HTTPS peut entraîner des erreurs ou d’autres comportements étranges. Si vous rencontrez des problèmes, vous pouvez toujours contacter notre équipe de support qui se fera un plaisir de vous aider.
Si votre serveur web utilise Nginx, vous pouvez rediriger tout votre trafic HTTP vers HTTPS. Il suffit d’ajouter le code suivant à votre fichier de configuration Nginx :
server {
listen 80;
server_name domain.com www.domain.com;
return 301 https://domain.com$request_uri;
}
Alternativement, si vous êtes un client de Kinsta, alors nous pouvons effectuer ce changement pour vous. Ouvrez simplement un ticket de support et faites-nous savoir quel domaine doit être dirigé, et nous nous occuperons du reste.
Étape 3 : Ajoutez l’en-tête HSTS
Il existe différents types de directives et de niveaux de sécurité que vous pouvez appliquer à votre en-tête HSTS. Toutefois, nous vous recommandons d’ajouter la directive max-age, car elle définit la durée en secondes pendant laquelle le serveur web doit assurer la livraison via HTTPS. Cela bloque l’accès aux pages ou aux sous-domaines qui ne peuvent être servis que par HTTP.
Si vous utilisez un serveur Apache, vous devez ouvrir votre fichier virtual hosts. Vous pouvez ensuite ajouter ce qui suit :
Header always set Strict-Transport-Security max-age=31536000
Chez Kinsta, nous utilisons des serveurs Nginx. Si vous êtes un client de Kinsta, vous pouvez ajouter ce qui suit à votre fichier de configuration Nginx :
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";
Comme toujours, nous pouvons faire tout le travail difficile pour vous. Il vous suffit d’ouvrir un ticket de support pour nous demander d’ajouter un en-tête HSTS à votre site. Notre équipe se fera un plaisir d’apporter cette modification à votre fichier Nginx.
Étape 4 : Soumettez votre site à la liste de préchargement HSTS
Il y a un inconvénient majeur à la politique HSTS. Un navigateur doit rencontrer l’en-tête HSTS au moins une fois avant de pouvoir l’utiliser pour de futures visites. Cela signifie que votre public devra effectuer le processus de redirection de HTTP à HTTPS au moins une fois. Pendant ce temps, ils seront vulnérables aux attaques basées sur le protocole.
Pour tenter de combler cette faille de sécurité, Google a créé la liste de préchargement HSTS. Celle-ci répertorie tous les sites web qui prennent en charge le HSTS, qui est ensuite codé en dur dans Chrome. En ajoutant votre site à cette liste, les visiteurs n’auront plus à effectuer une redirection HTTPS initiale.
La plupart des principaux navigateurs Internet ont leurs propres listes de préchargement HSTS, qui sont basées sur la liste de Chrome. Pour figurer sur cette liste, votre site doit répondre aux critères de soumission. La bonne nouvelle est que nous avons déjà couvert toutes ces exigences, vous pouvez donc aller de l’avant et soumettre votre site à la liste de préchargement HSTS.
Une fois que vous êtes sur cette liste, certains outils d’optimisation des moteurs de recherche (SEO) peuvent vous mettre en garde contre les redirections 307. Ces redirections se produisent lorsque quelqu’un tente d’accéder à votre site via un protocole HTTP non sécurisé. Cela déclenche une redirection 307 au lieu d’une redirection 301 permanente. Si cela vous préoccupe, vous pouvez utiliser httpstatus pour analyser votre site et vérifier si une redirection 301 a lieu.
Étape 5. Vérifiez votre en-tête Strict-Transport-Security
Après avoir ajouté l’en-tête HSTS, il est bon de vérifier qu’il fonctionne correctement. Vous pouvez effectuer cette vérification à l’aide des outils web intégrés de votre navigateur.
Les étapes varieront en fonction du navigateur web que vous avez choisi. Pour effectuer cette vérification, dans Google Chrome DevTools, naviguez jusqu’à la page web que vous souhaitez tester. Vous pouvez ensuite cliquer sur n’importe quelle zone vide, et sélectionner Inspecter.
Dans le panneau suivant, sélectionnez l’onglet Réseau. Vous pouvez ensuite vérifier la section des en-têtes, qui devrait contenir les éléments suivants :
strict-transport-security: max-age=31536000
Vous pouvez également analyser votre site à l’aide de l’outil Security Headers. Comme précédemment, il suffit de saisir l’URL de votre site web, puis de cliquer sur Analyser. Vous obtiendrez un rapport de sécurité, qui devrait contenir une balise strict-transport-security. Si cette balise est présente, votre en-tête HSTS est maintenant correctement configuré et vous avez réussi à combler l’échappatoire de la redirection HTTPS.
Résumé
La redirection de HTTP vers HTTPS est une bonne pratique de sécurité. Cependant, aucune technologie n’est parfaite et cette redirection peut rendre votre site plus vulnérable aux attaques SSL.
En gardant cela à l’esprit, récapitulons comment corriger l’erreur « HSTS missing from HTTP server » :
- Créez une sauvegarde manuelle de votre site.
- Configurez une redirection HTTP vers HTTPS.
- Ajoutez l’en-tête HSTS.
- Soumettez votre site à la liste de préchargement HSTS.
- Vérifiez votre en-tête strict-transport-security.
La résolution des messages d’erreur peut être un processus long et frustrant. Cependant, notre équipe d’experts est là pour vous aider ! Un support 24/7 est inclus dans tous nos plans Kinsta, afin que vous puissiez vous concentrer sur ce qui compte vraiment : la croissance de votre site web.