web-dev-qa-db-fra.com

Apache 2.4 - Désactiver l'en-tête HSTS

J'ai mis en place une boîte vagabonde avec Ubuntu 18.04 et installé Apache 2.4.29. J'ai créé et activé un nouveau fichier Conf qui ressemble à ceci:

<VirtualHost *:80>
    ServerName Django.dev
    ServerAlias www.Django.dev
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/

    ErrorLog ${Apache_LOG_DIR}/error.log
    CustomLog ${Apache_LOG_DIR}/access.log combined
</VirtualHost>

Pour une raison quelconque, Apache répond avec un en-tête HSTS lorsque j'essaie d'appeler django.dev:

HSTS response header

Je n'ai aucune idée d'où cela vient de. Il n'y a pas de telle en-tête définie dans apache2.conf ni en 000-par défaut.conf et je n'ai même pas de mod_ssl activé.

Enfilement, tout fonctionne comme prévu si vous appelez directement l'IP directement. Si je ping django.dev, il est résolu à exactement la même adresse IP.

Est-ce que quelqu'un sait comment ou où je peux désactiver la HST? Je suis à perte et je suis déjà perdu des heures d'essayer de résoudre ce problème.

6
simon

La stratégie HSTS est mise en cache par le navigateur pour les secondes spécifiées dans le max-age Directive ( RFC 6797, 6.1.1 ). La suppression de l'en-tête de la configuration du serveur Web ne supprime pas la stratégie du cache (ni une liste de préchargement, si elle est soumise à une), et il continue donc à causer 307 Internal Redirects sur chaque navigateur qui a déjà mis en cache la politique.

Comme spécifié dans RFC 6797, 5. :

Seul l'hôte HSTS donné peut mettre à jour ou peut entraîner la suppression de sa politique de TVHT émise. Cela l'accomplit en envoyant Strict-Transport-Security Champs d'en-tête de réponse HTTP aux UAS avec de nouvelles valeurs pour la durée de la durée de la stratégie et la sous-domaine applicable. Ainsi, les UAS mettent en cache les informations sur la politique de la TVHTS les plus fraîches sur le nom d'un hôte HSTS. Spécification d'une durée de temps zéro signale l'UA pour supprimer la stratégie HSTS (y compris toute directive assertée Industriauline) pour cet hôte HSTS.

Par conséquent, Le seul moyen de supprimer une stratégie HSTS consiste à définir une en-tête HSTS avec une durée zéro , et le navigateur doit également voir cet en-tête sur un Connexion sans erreurs TLS ni avertissements ( 2.2 ).

<VirtualHost *:443>
    . . .
    Header always set Strict-Transport-Security "max-age=0"
</VirtualHost>

Enfilement, tout fonctionne comme prévu si vous appelez directement l'IP directement.

Ce n'est pas du tout étrange. Comme expliqué dans la Annexe A ,

  1. Les hôtes HSTS sont identifiés uniquement via des noms de domaine - l'identification explicite de l'adresse IP de tous les formulaires est exclue. Ceci est destiné à simplifier et est également en reconnaissance de divers problèmes liés à l'utilisation d'une identification de l'adresse IP directe de concert avec la sécurité basée sur la PKI.

Vous ne pouvez pas désactiver la HSTS sur .dev

Si cela est littéralement un .dev Domaine , vous ne pouvez pas désactiver la HSTS.

Votre sécurité est notre priorité. Le domaine .dev Le domaine de niveau supérieur est inclus dans la liste de précharge HSTS, ce qui permet à HTTPS requis sur toutes les connexions à toutes les connexions .dev sites Web et pages sans avoir besoin d'une inscription ou d'une configuration individuelle HST. La sécurité est intégrée.

8
Esa Jokinen