Maintenant que votre site est servi en HTTPS à l’aide d’un certificat SSL/TLS et sécurisé par DNSSEC et DANE, il est maintenant temps de l’ajouter à la liste HSTS preload.
HSTS (HTTP Strict Transport Security) est un entête de réponse qui demande au navigateur de toujours utiliser SSL/TLS pour communiquer avec votre site.
Qu’importe si l’utilisateur ou le lien qu’il clique spécifie HTTP, HSTS forcera l’usage d’HTTPS.
Vous voulez sécuriser votre site avant qu'il soit trop tard ?
Plugins obsolètes, xmlrpc ouvert, uploads non protégés — la plupart des intrusions WordPress exploitent des failles connues et évitables. Un durcissement sérieux prend une demi-journée.
Faites auditer votre sécurité →Toutefois, cela laisse l’utilisateur vulnérable lors de sa toute première connexion à un site. L’HSTS preloading corrige donc cela.
L’HSTS preloading
Il existe une liste qui permet d’inclure un domaine dans la liste HTTP Strict Transport Security preload de Chrome.
Il s’agit d’une liste de sites qui sont codés en dur dans Chrome comme étant uniquement servis en HTTPS.
Firefox, Safari, IE 11 and Edge ont également des listes HSTS preload qui incluent la liste de Chrome.
Pré-requis
Il y a quelques pré-requis avant de pouvoir être inclus dans la liste HSTS preload. Votre site doit:
- avoir un certificat valide,
- rediriger tout le trafic HTTP vers HTTPS, c’est-à-dire n’être servi qu’en HTTPS uniquement,
- servir tous les sous-domaines en HTTPS, même le sous-domaine
wwwsi un enregistrement DNS existe pour ce sous-domaine, - servir un entête HSTS pour les requêtes HTTPS avec une date d’expiration supérieure à 18 semaines (10886400 seconds), les tokens
includeSubdomainsetpreloaddoivent impérativement être spécifiés. Si vous servez une redirection depuis votre site HTTPS, cette redirection doit obligatoirement contenir l’entête HSTS. - L’entête HSTS doit être présent dans le VirtualHost HTTP aussi, juste avant la redirection vers le VirtualHost HTTPS.
Voici un exemple d’entête HSTS valide :
Strict-Transport-Security: max-age=63072000; includeSubDomains; preloadCode language: HTTP (http)
Voici ce qu’il faut rajouter dans votre VirtualHost Apache:
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"Code language: JavaScript (javascript)
N’oubliez pas d’ajouter l’entête HSTS dans la configuration de votre VirtualHost HTTP, juste avant la redirection vers votre VirtualHost HTTPS.
Sauvegardez la configuration et relancez Apache :
service apache2 restart
Inscription à la liste HSTS preload
Note : il est facile d’ajouter un domaine mais il n’est pas simple de le retirer de la liste. Il faut donc être sûr et certain que le domaine ne sera désormais servi qu’en HTTPS.
Une fois que vous remplissez toutes les conditions, vous pouvez soumettre votre site à la liste d’inclusion HSTS preload.
Cela ne prend que quelques jours avant d’être ajouté à la liste.
Votre site a été piraté ?
Redirections suspectes, pages injectées, compte admin fantôme, blacklist Google — une compromission WordPress ça se nettoie méthodiquement. Je localise l'infection, j'éradique le code malveillant et je referme les portes.
Aidez-moi à reprendre le contrôle →
Mise à jour de l’article : ajout de la mention de l’entête HSTS pour le VirtualHost sur le port HTTP.