Comment désactiver HTTP Ssortingct Transport Security?

J’ai eu une application Rails avec config.force_ssl = true , mais maintenant je ne veux pas le cryptage SSL, mais mon application continue à redirect vers https. J’ai lu ceci est un problème de sécurité de transport HTTP ssortingct sur Apache. Comment puis-je le désactiver?

Ce n’est pas un problème avec Apache, mais avec le fait que Rails envoie un en-tête HSTS.

Dans Chrome, vous pouvez effacer l’état HSTS en entrant dans about:net-internals , comme décrit dans ImperialViolet: HSTS UI dans Chrome . Vous devrez peut-être également effacer le cache, car config.force_ssl = true utilise également une redirection 301 (permanente).

De plus, selon cette réponse , vous pourriez également faire en sorte que votre application envoie un en-tête STS avec max-age = 0. Dans votre contrôleur:

 response.headers["Ssortingct-Transport-Security"] = 'max-age=0' 

Je voulais juste souligner la réponse de @ Bruno et les suggestions de @ JoeVanDyk sont vraies et peuvent être appliquées au-delà du contexte de Rails / Apache. J’utilise PHP et Nginx. PHP n’a rien à voir avec cela dans mon cas, mais voici les étapes avec Nginx:

 //sorry here's the nginx.conf part first, can't figure out how to mix multi-line //code with an ordered list server { #... #change: # add_header Ssortingct-Transport-Security "max-age=315360000; includeSubdomains"; #to: add_header Ssortingct-Transport-Security "max-age=0;"; #... } 
  1. effacez votre “historique du navigateur”. Pour clarifier la suggestion de @ JoeVanDyk, je pense que vous devez effacer “l’historique de navigation” car la suppression du cache n’a pas fonctionné pour moi (testé sur Chrome / Firefox, veuillez append des commentaires si vous en savez plus).

  2. Fichier nginx.conf (voir le code ci-dessus)

  3. redémarrer le serveur

    root@ip-xxx-xxx-xxx:~# /etc/init.d/nginx restart .

Après cela, vous pouvez rétablir la commande nginx add_header Ssortingct.. à ce que vous aviez précédemment. Assurez-vous de répéter les étapes 1 à 3.

La figure identifiée offre un peu de reflection à ce sujet. Définir le temps de cache sur 0 est le meilleur choix et si vous le désactivez, vous devez le laisser à 0 pendant des semaines pour effacer les navigateurs des clients. Si vous avez juste besoin de supprimer HSTS en chrome (pour votre propre navigateur), vous pouvez utiliser chrome://net-internals/#hsts dans la barre d’adresse pour effacer le cache de votre site sur votre navigateur spécifique. Combiné avec la “porte” ci-dessous, il devient utile.

Vous pouvez définir des modes HSTS temporaires en définissant / usurpant une clé d’en-tête personnalisée =>. Fondamentalement, si un en-tête de demande spécial existe, et qu’il correspond à une clé, définissez HSTS avec un temps de cache de tout ce dont vous avez besoin. Cela vous permettrait d’activer ou de désactiver le HSTS pour tout le trafic, sauf vous. Utile pour essayer HSTS avant d’activer globalement (pour vous assurer que tous les actifs sont en cours de chargement). Aussi utile si vous voulez effacer temporairement le cache du client pendant que quelque chose est réparé (vous laissant de la place pour le test).

J’ai constaté que je ne pouvais pas supprimer une entrée HSTS dans Chrome car j’utilisais une adresse IP pour le développement. Je n’arrivais pas à obtenir chrome://net-internals/#hsts pour supprimer l’entrée. J’ai trouvé que Chrome stocke les entrées dans ../AppData/local/Google/Chrome/User Data / Default / TransportSecurity, alors je viens de supprimer le fichier. Cela supprime bien entendu toutes les requêtes HSTS, mais je pense qu’elles seront reconstruites avec le temps.