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.
Vos sauvegardes sont-elles vraiment fiables ?
Une sauvegarde que vous n'avez jamais testée n'est pas une sauvegarde — c'est une illusion de sécurité. Je mets en place des backups automatisés, hors-site, vérifiés, avec procédure de restauration documentée.
Mettons en place une vraie stratégie de backup →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.
Vos sauvegardes sont-elles vraiment fiables ?
Une sauvegarde que vous n'avez jamais testée n'est pas une sauvegarde — c'est une illusion de sécurité. Je mets en place des backups automatisés, hors-site, vérifiés, avec procédure de restauration documentée.
Mettons en place une vraie stratégie de backup →
Mise à jour de l’article : ajout de la mention de l’entête HSTS pour le VirtualHost sur le port HTTP.