Apache : bascule automatique vers le HTTPS par HSTS

Apache : bascule automatique vers le HTTPS avec le HSTSJe me suis aperçu que j’avais laissé des directives totalement inutiles dans mes fichiers de configuration Apache pour rediriger le http vers le https, du genre :

RedirectMatch permanent "^(.*)$" https://www.dsfc.net$1

HTTP Strict Transport Security

Firefox et Chromium basculent en https dès qu’ils recoivent de la part du serveur un en-tête Strict-Transport-Security, à la condition que le certificat soit issu d’une autorité de certification valable comme Let’s Encrypt.  Il est donc totalement inutile de laisser la redirection indiquée ci-dessus, dès lors que vous ajoutez à l’un des fichiers de configuration générale ( pas dans le VirtualHost associé à votre site) de votre fichier Apache :

Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

L’unité de temps utilisée par l’en-tête Strict-Transport-Security est la seconde. Dans l’exemple ci-dessus, j’ai activé le HSTS pour un an.

Vérification sur Pingdom Tools

Sur la page Pingdom Tools, la redirection s’effectue du fait de HSTS !

Bascule automatique de HTTP vers HTTPS du fait de HSTS

 

Apache  / Apache Formateur Apache HSTS Https SSL 

Commentaires

Erreur, le HSTS n’est pris en compte que lors d’une communication HTTPS, et à ce moment il est mis en mémoire pour les prochaines visites.

Donc la redirection HTTP vers HTTPS est utile et nécessaire, au moins pour la première visite.

Cf. https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Strict-Transport-Security

@Nicolas

C’est ce que j’avais cru comprendre. Mais…

Je n’ai trouvé aucune trace dans le profil des navigateurs du stockage de l’information relative au header HSTS des sites, ce qui signifierait plutôt que les navigateurs n’ont absolument plus besoin de la redirection.

coucou
Vous pouvez aussi ajouter votre site dans la liste https://hstspreload.org/
qui est utilisé par les navigateurs principaux (chrome, firefox) pour savoir si un site est en https ou pas.

Dans le cas de ton site, on voit qu’une requete en http répond un 301 avec le header hsts (qui nas pas d’interret) vers le https.
Est-ce que ton apache a été restart ?

Request URL:http://dsfc.net/
Request Method:GET
Status Code:301 Moved Permanently
Remote Address:195.154.102.202:80
Referrer Policy:no-referrer-when-downgrade
Access-Control-Allow-Origin:www.dsfc.net
Cache-Control:max-age=14400
Connection:Upgrade, Keep-Alive
Content-Encoding:gzip
Content-Length:20
Content-Security-Policy:default-src ‘self’ ; frame-src ‘self’ https://www.youtube-nocookie.com https://www.youtube.com https://www.google.com/calendar ; child-src ‘self’ https://www.youtube-nocookie.com https://www.youtube.com https://www.google.com/calendar ; img-src ‘self’ data: http: https: ; style-src ‘self’ data: http: https: ‘unsafe-inline’ ; script-src ‘self’ data: http: https: ‘unsafe-inline’ ‘unsafe-eval’
Content-Type:text/html; charset=UTF-8
Keep-Alive:timeout=300, max=300
Location:https://www.dsfc.net/
Referrer-Policy:strict-origin-when-cross-origin
Server:Apache
Strict-Transport-Security:max-age=31536000; includeSubDomains; preload
Upgrade:h2,h2c
Vary:Accept-Encoding
x-content-type-options:nosniff
x-frame-options:sameorigin
x-robots-tag:index,follow
x-xss-protection:1; mode=block
Accept-Encoding:gzip, deflate
Connection:keep-alive
Host:dsfc.net
Upgrade-Insecure-Requests:1

Laisser un commentaire

(requis)

(requis)