Safari leitet http auf (nicht vorhandenes) https um

Safari erzwingt eine Umleitung auf die https-Version einer Website, die ich zuvor über https besucht habe.

Die https-Site funktioniert jedoch nicht mehr und es gibt keine Möglichkeit zu verhindern, dass das Safari-Formular versucht, sie zu laden.

HTTP-Umleitungen zu HTTPS

Hier ist eine verwandte Apple-Forumsfrage, Safari leitet http immer wieder auf https um

Antworten (6)

Wenn die Website Safari zuvor mitgeteilt hat, dass sie immer über HTTPS über HSTS ( HTTP Strict Transport Security ) aufgerufen werden möchte, versucht Safari immer, auf HTTPS umzuleiten.

Sie können den HSTS-Cache leeren, indem Sie löschen ~/Library/Cookies/HSTS.plist.

Beachten Sie, dass Safari auch 301-Weiterleitungen für eine Weile zwischenspeichert und daher möglicherweise auch das Löschen des normalen Safari-Cache erforderlich ist: Wählen Sie im Menü „Entwickeln“ (unter „Einstellungen“ → „Erweitert“ aktivieren) die Option „Leere Caches“.

#Für 2020...

Im aktuellen MacOS müssen Sie

  1. Löschen Sie den Cache in Safari. (Entwicklermenü.) Dann sofort:
  2. Beenden Sie Safari und alle anderen Apps, die möglicherweise das Netzwerk verwenden (beenden Sie alle Apps).
  3. Öffnen /Users/ your user name /Library/Cookies, das wie folgt aussehen wird:

Geben Sie hier die Bildbeschreibung ein

  1. Werfen Sie HSTS.plistden Papierkorb ein und starten Sie sofort den gesamten Mac neu.

Deaktivieren Sie in extremen Fällen die gesamte Bandbreite zum Mac vor den Schritten 1-2-3-4.

Im aktuellen MacOS wird die HSTS-Liste sofort neu erstellt, wenn die Datei weggeworfen wird, wenn eine Netzwerkverbindung auftritt. Daher muss der Mac sofort neu gestartet werden, damit der Papierkorb funktioniert.

Eine Sache noch. Damit ich https für eine bestimmte Domain verlassen konnte, musste ich es Limit IP Address Trackingunter Systemeinstellungen > Netzwerk deaktivieren. Hide IP addressIch habe auch auf der Registerkarte Datenschutz der Safari-Einstellungen deaktiviert .

Die HSTS-Richtlinie ist jetzt in den gespeicherten Websitedaten von Safari enthalten, und Sie können localhost-Daten entfernen, um dieses Problem zu beheben.

  1. command + ,
  2. Datenschutz -> Website-Daten verwalten ...
  3. Lokalhost suchen
  4. Klicken Sie auf Entfernen

Wechseln Sie https://localhostzu http://localhostin Ihrer Adressleiste und klicken Sie auf die Eingabetaste.

Dies gilt nicht nur für localhost, sondern für alle Domains. Beachten Sie, dass Sie für den Zugriff auf die Subdomain die Daten der übergeordneten Domain entfernen müssen . http://some.subdomain.somehost.comDas heißt, wenn Sie darauf zugreifen und zu weitergeleitet werden möchten , müssen Sie auf der Seite httpsnach suchen und sie entfernen. somehost.comManage Website Data

Seit Dezember 2017 hat Google die TLD „.dev“ zur vorinstallierten HSTS-Liste für Chrome hinzugefügt!

Safari verwendet dieselbe Liste. Safari fügt also immer *.dev zur HSTS-Liste hinzu ...

Scheint, dass viele Entwickler das Suffix .dev in ein anderes ändern müssen :(

Siehe: Chrome, um .dev-Domains über vorinstalliertes HSTS auf HTTPS zu zwingen

Ich habe keine funktionierende Lösung gefunden, aber für eine Problemumgehung verwenden Sie 127.0.0.1 anstelle von localhost

http://localhost/

http://127.0.0.1/

Es scheint, dass Safari dieses verrückte Verhalten zeigt, wenn Sie mit einem clientseitigen Zertifikat auf localhost zugegriffen haben. In meinem Fall benötigt eines der Projekte, mit denen ich arbeite, dieses clientseitige Setup, und es ruiniert die Entwicklung für die Projekte, bei denen ich http auf localhost nicht verwenden kann. Die einzige Problemumgehung, die ich gefunden habe, besteht darin, /etc/hostseinen Alias ​​​​für localhost zu bearbeiten und hinzuzufügen, wie so

127.0.0.1 localhost

Verwenden Sie dann Ich kann http://localhost:3000 verwenden , um auf mein Projekt auf Port 3000 zuzugreifen, ohne dass Safari eine https-Verbindung erzwingt.

Ich bin auch auf dieses 'Safari HSTS Cache'-Problem gestoßen.

Ich habe die Lösung ausprobiert rm ~/Library/Cookies/HSTS.plist, aber es funktioniert nicht.

Aber die folgenden Schritte sind nützlich:

  1. Safari beenden
  2. rm -f ~/Library/Cookies/HSTS.plist, entfernen Sie die HSTS-Cache-Datei
  3. killall nsurlstoraged, um den HTTP-Speichermanager zu stoppen (weil er einen In-Memory-Cache der HSTS-Hosts hat)

Das Wichtigste ist, dass der Dienst nsurlstoraged über einen HSTS-Cache im Arbeitsspeicher verfügt und diesen Dienst neu laden muss.