Safari Przekierowuje http na (nieistniejący) https

34

Safari wymusza przekierowanie do wersji https strony, którą wcześniej odwiedziłem przez https.

Jednak witryna https już nie działa i nie ma sposobu, aby powstrzymać formularz Safari przed próbą załadowania.

HTTP przekierowuje do HTTPS

Oto powiązane pytanie na forach Apple, Safari przekierowuje http do https

rjstelling
źródło
Czy to możliwe, że HSTS został włączony gdzieś w przeszłości?
Max Ried
@MaxRied To brzmi jak dobra sugestia, nie mam możliwości wiedzieć. Do odniesienia: en.wikipedia.org/wiki/HTTP_Strict_Transport_Security
rjstelling

Odpowiedzi:

19

Jeśli strona wcześniej poinformowała Safari, że chce być zawsze dostępna za pośrednictwem HTTPS za pośrednictwem HSTS ( HTTP Strict Transport Security ), Safari zawsze spróbuje przekierować na HTTPS.

Możesz wyczyścić pamięć podręczną HSTS, usuwając ~/Library/Cookies/HSTS.plist.

Pamiętaj, że Safari przez chwilę buforuje również przekierowania 301, dlatego może być również konieczne wyczyszczenie normalnej pamięci podręcznej Safari: z menu Programuj (włącz w Preferencje → Zaawansowane), wybierz Puste pamięci podręczne.

grg
źródło
Powinienem zacząć pisać odpowiedzi ...
Max Ried,
10
@grgarside Próbowałem tego wiele razy, to już nie działa
kushdilip
„Czyszczenie zwykłej pamięci podręcznej Safari” - jak dokładnie?
Wildcard
@Wildcard Edytowałem swoją odpowiedź z tymi informacjami
grg
8

Od grudnia 2017 r. Google dodaje TLD „.dev” do wstępnie załadowanej listy HSTS dla Chrome!

Safari używa tej samej listy. Dlatego Safari zawsze doda * .dev do listy HSTS ...

Wydaje się, że wielu programistów będzie musiało zmienić sufiks .dev na inny :(

Zobacz: Chrome, aby zmusić domeny .dev do HTTPS za pomocą wstępnie załadowanego HSTS

Bruno de l'Escaille
źródło
1
To wzbudza mój gniew. Żadna TLD nie powinna być całkowicie dostępna. Są cudowne rzeczy zwane VPNami lub Intranetami, które byłyby odpowiednie. (PS moja wściekłość jest skierowana na Google, a nie odpowiedź) :).
Volte
8

Polityka HSTS jest teraz zawarta w danych przechowywanych na stronie Safari i możesz usunąć dane localhost, aby usunąć ten problem.

  1. command + ,
  2. Prywatność -> Zarządzaj danymi strony internetowej ...
  3. Wyszukaj localhost
  4. Kliknij Usuń

Zmień https://localhostna http://localhostpasku adresu i kliknij klucz powrotu.

Johnathan Elmore
źródło
1
Dotyczy to nie tylko localhostdomen, ale także dowolnych domen. Pamiętaj, że aby uzyskać dostęp do subdomeny , musisz usunąć dane domeny nadrzędnej . To znaczy, jeśli chcesz uzyskać dostęp http://some.subdomain.somehost.comi zostać przekierowanym https, musisz wyszukać somehost.comna Manage Website Datastronie i usunąć ją.
voiger
5

Nie znalazłem żadnego działającego rozwiązania, ale w celu obejścia tego problemu użyj 127.0.0.1 zamiast localhost

http://localhost/

http://127.0.0.1/
saintmarl
źródło
1

Wygląda na to, że Safari wkracza w to szalone zachowanie, gdy uzyskałeś dostęp do hosta lokalnego za pomocą certyfikatu po stronie klienta. W moim przypadku jeden z projektów, z którymi pracuję, wymaga konfiguracji po stronie klienta i całkowicie psuje rozwój projektów, w których nie mogę używać http na localhost. Jedyne obejście, jakie znalazłem, to edytowanie /etc/hostsi dodawanie aliasu dla localhost, podobnie jak to

127.0.0.1 localhost

Następnie użyj Mogę użyć http: // localhost: 3000, aby uzyskać dostęp do mojego projektu na porcie 3000 bez Safari wymuszającego połączenie https.

PEZ
źródło