Chrome: Witryna korzysta z HSTS. Błędy sieciowe… ta strona prawdopodobnie będzie działać później

161

Rozwijam się przeciwko localhost. Dziś rano zaraz po użyciu Fiddlera zacząłem otrzymywać ten błąd na chrome (działa poprawnie w firefox)

„Nie możesz teraz odwiedzić localhost, ponieważ witryna korzysta z HSTS. Błędy sieciowe i ataki są zwykle tymczasowe, więc ta strona prawdopodobnie będzie działać później”. wprowadź opis obrazu tutaj

Teraz localhost działa w chrome tylko wtedy, gdy uruchomiony jest program Fiddler. Upewniłem się już, że przekierowania proxy, które wykonuje skrzypek, są poprawiane, gdy skrzypek się wyłącza.

Próbowałem też zaimportować certyfikat do mojego zaufanego katalogu głównego i ponownie uruchomić przeglądarkę (a także komputer).

programista747
źródło
2
Napotykam ten problem, gdy administrator IT zmienia swoje zasady. Wszystko, co muszę zrobić, to uruchomić polecenie: gpupdate / force
Jacob Phan

Odpowiedzi:

190

Jednym z bardzo szybkich sposobów obejścia tego problemu jest wyświetlenie ekranu „Twoje połączenie nie jest prywatne”:

rodzaj badidea

typ thisisunsafe(kredyt dla The Java Guy za znalezienie nowego hasła)

Umożliwi to wyjątek bezpieczeństwa, gdy Chrome w innym przypadku nie zezwala na ustawienie wyjątku za pomocą kliknięcia, np. Dla tego przypadku HSTS.

Jest to oczywiście zalecane tylko dla połączeń lokalnych i maszyn wirtualnych w sieci lokalnej, ale ma tę zaletę, że działa na maszynach wirtualnych używanych do programowania (np. W połączeniach lokalnych z przekierowaniem portów), a nie tylko w przypadku bezpośrednich połączeń z hostem lokalnym.

Uwaga: programiści Chrome zmienili to hasło w przeszłości i mogą to zrobić ponownie. Jeśli badideaprzestanie działać, zostaw tutaj notatkę, jeśli nauczysz się nowego hasła. Spróbuję zrobić to samo.

Edycja: od 30 stycznia 2018 r. To hasło wydaje się już nie działać.

Jeśli uda mi się znaleźć nowy, opublikuję go tutaj. W międzyczasie poświęcę trochę czasu na skonfigurowanie certyfikatu z podpisem własnym za pomocą metody opisanej w tym poście stosu:

Jak utworzyć certyfikat z podpisem własnym za pomocą openssl?

Edycja: od 1 marca 2018 r. I wersji Chrome 64.0.3282.186 to hasło działa ponownie dla bloków związanych z HSTS w witrynach .dev.

Edycja: od 9 marca 2018 r. I wersji Chrome 65.0.3325.146 badideahasło już nie działa.

Edycja 2: problem z samopodpisanymi certyfikatami wydaje się polegać na tym, że wraz ze zacieśnianiem się standardów bezpieczeństwa w dzisiejszych czasach, powodują one wyrzucanie własnych błędów (na przykład nginx odmawia załadowania certyfikatu SSL / TLS, który zawiera certyfikat z podpisem własnym w łańcuchu uprawnień, domyślnie).

Rozwiązaniem, które teraz wybieram, jest zamiana domeny najwyższego poziomu we wszystkich moich witrynach programistycznych .app i .dev na .test lub .localhost. Chrome i Safari nie będą już akceptować niezabezpieczonych połączeń ze standardowymi domenami najwyższego poziomu (w tym .app).

Bieżącą listę standardowych domen najwyższego poziomu można znaleźć w tym artykule w Wikipedii, w tym domeny specjalnego użytku:

Wikipedia: Lista internetowych domen najwyższego poziomu: domeny specjalnego przeznaczenia

Wydaje się, że te domeny najwyższego poziomu są zwolnione z nowych ograniczeń dotyczących tylko https:

  • .lokalny
  • .Lokalny Gospodarz
  • .test
  • (dowolna niestandardowa / niestandardowa domena najwyższego poziomu)

Zobacz odpowiedź i link od codinghands do oryginalnego pytania, aby uzyskać więcej informacji:

odpowiedź z rąk kodujących

Rick Gladwin
źródło
19
nigdy nie słyszałem o czymś takim, ale z jakiegoś powodu to działa! dzięki!
Alexey,
ogromna pomoc! Dziękuję bardzo!
RHSmith159
Nie mogę nawet uwierzyć, że to działa, ale działa. Nie jestem pewien, czy powinienem być szczęśliwy, czy wściekły, że nie jest to udokumentowane; Spędziłem GODZINY przez lata zajmując się tymi bzdurami w środowiskach deweloperskich.
Scott Byers
7
Użyj thisisunsafeinsread of badidea. Zostało to zmienione w nowej wersji
The Java Guy
działa +1, jednak chrome powinien naprawdę dodać opcję kontynuowania ostrzeżeń, zamiast tylko blokowania
5413668060
186

Kiedy odwiedzałeś https: // localhost wcześniej w pewnym momencie, nie tylko odwiedził to przez bezpieczny kanał (https zamiast http), ale także poinformował przeglądarkę, używając specjalnego nagłówka HTTP: Strict-Transport-Security (często w skrócie HSTS ), że powinien używać TYLKO protokołu https do wszystkich przyszłych wizyt.

Jest to funkcja bezpieczeństwa, której serwery internetowe mogą używać, aby zapobiec obniżeniu statusu użytkowników do http (celowo lub przez złą stronę).

Jeśli jednak następnie wyłączysz serwer https i po prostu zechcesz przeglądać http, nie możesz (zgodnie z projektem - o to chodzi w tej funkcji bezpieczeństwa).

HSTS zapobiega również akceptowaniu i pomijaniu poprzednich błędów certyfikatów.

Aby to zresetować, aby HSTS nie był już ustawiony na hosta lokalnego, wpisz następujące polecenie w pasku adresu Chrome:

chrome://net-internals/#hsts

Gdzie będziesz mógł usunąć to ustawienie dla „localhost”.

Możesz także chcieć dowiedzieć się, co to ustawiało, aby uniknąć tego problemu w przyszłości!

Zwróć uwagę, że w przypadku innych witryn (np. Www.google.com) są one „wstępnie załadowane” do kodu Chrome, więc nie można ich usunąć. Po zapytaniu o nie na chrome: // net-internals / # hsts zobaczysz je na liście jako staticwpisy HSTS.

Na koniec zauważ, że Google rozpoczął wstępne ładowanie HSTS dla całej domeny .dev: https://ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts/

Barry Pollard
źródło
Otrzymuję to dla gmail.com. Poszedłem do chrome: // net-internals / # hsts i zapytałem o gmail.com, otrzymałem Znaleziony: static_sts_domain: gmail.com static_upgrade_mode: STRICT Próbowałem usunąć domenę, ale nadal mam problem.
paiego
Ta odpowiedź ma dla mnie sens. Moim problemem jest jednak to, że zmieniłem serwer nazw witryn z wordpress (hostowany przez wordpress) na mój serwer (hostowany samodzielnie) i teraz otrzymuję to i prawdopodobnie wszyscy odwiedzający Chrome. Masz jakiś pomysł, jak obejść to dla odwiedzających bez usuwania ich pamięci podręcznej?
TomC
2
Zasadniczo jedyną odpowiedzią jest użycie HTTPS w przyszłości lub nadzieja, że ​​użytkownicy nie będą go buforować. HTTPS to droga do przodu i wolny od LetsEncrypt. Powinieneś także sprawdzić, czy ktoś wstępnie załadował Twoją witrynę do kodu przeglądarki, ale nie zgaduj, czy możesz ją zresetować samodzielnie. Nie wiem, że Wordpress automatycznie dodaje HSTS, więc zastanawiam się, jak to się stało.
Barry Pollard
Dzięki @BazzaDP - nie widzę sposobu na obejście tego. Być może będę musiał z powrotem zmienić serwery nazw, dowiedzieć się, co w starej witrynie wymuszało HTTPS, a następnie spróbować ponownie przeprowadzić migrację. Nie możesz po prostu przesłać FTP z blogów hostowanych na Wordpress do nowej witryny, dlatego jest to dla mnie problem, a nowy właściciel witryny nie ma certyfikatu SSL (chociaż i tak poważnie rozważa jego zdobycie)
TomC
2
Jak wspomniałem w mojej odpowiedzi, wstępnie załadowane (lub statyczne) wpisy STS nie mogą zostać usunięte, ponieważ istnieją w kodzie Chrome, a nie na liście obsługiwanej lokalnie. I zgodnie z moją ostatnią linią mojej odpowiedzi, Google zdecydowało się wstępnie załadować całą domenę deweloperów.
Barry Pollard
19

Miałem ten problem z witrynami działającymi na XAMPP z prywatnymi nazwami hostów. Okazuje się, że nie tak prywatnie! Były to wszystkie domain.dev, które Google zarejestrował teraz jako prywatny gTLD i wymusza HSTS na poziomie domeny. Zmieniono każdy wirtualny host na .devel(eugh), zrestartowałem Apache i wszystko jest teraz w porządku.

codinghands
źródło
Mogę potwierdzić ten problem z Operą 50.0.2762.9 i przełączeniem domeny deweloperskiej z .devna .develdziała w celu obejścia tego ograniczenia.
Courtney Miles
5
RFC 2606 rezerwuje niektóre domeny najwyższego poziomu specjalnie w celu zapobiegania konfliktom z testami prywatnymi. Wydaje się, że .testjest to prawdopodobnie najbardziej poprawne rozwiązanie, na które można przejść w przypadku środowisk programistycznych.
Courtney Miles
To dosłownie uratowało mi życie po dniach, kiedy nie mogłem zrozumieć, dlaczego chrome zachowuje się tak na mojej .devlokalnej domenie ... Boże, kto by wiedział ...
D. Pietrow
Cóż, w rzeczywistości .test jest zalecany tylko do testowania obecnego lub nowego kodu związanego z DNS.
Alexey,
To tutaj rozwiązało mój problem. Używam Laragona do mojego środowiska programistycznego.
Craig,
12

Niedawno miałem ten sam problem podczas próby dostępu z wykorzystaniem domen CloudFlare Origin CA .

Jedynym sposobem obejścia / uniknięcia wyjątku certyfikatu HSTS w przeglądarce Chrome (kompilacja systemu Windows) było postępowanie zgodnie z krótkimi instrukcjami na stronie https://support.opendns.com/entries/66657664 .

Obejście:
dodaj do Chrome skrót flagi --ignore-certificate-errors, a następnie otwórz ją ponownie i przejdź do swojej witryny.

Przypomnienie:
używaj go tylko do celów programistycznych.

wprowadź opis obrazu tutaj

Binyamin
źródło
Może spróbuj w Google Canary, kompilacja google.com/chrome/browser/canary.html
Binyamin
Załóżmy, że nie masz witryny, która powoduje błąd certyfikatu. Jak więc sprawdzisz, czy Twoje rozwiązanie działa? Nie pomaga tutaj - stackoverflow.com/questions/41902367/ ...
MasterJoe2
A co z wersjami na komputery Mac?
The Java Guy
2

Napotykam ten sam błąd, a tryb incognito również ma ten sam problem. Rozwiązuję ten problem, usuwając historię Chrome.

wangf
źródło
2

Cierpię z powodu tego problemu od bardzo dawna. Nie mogłem otwierać witryn takich jak GitHub. Prawie wypróbowałem wszystkie odpowiedzi w Internecie i nikt nie działał. Próbowałem również ponownie zainstalować chrome. Znalazłem rozwiązanie tego problemu od naszego operatora sieci i zadziałało. W rejestrze jest poprawka, która na stałe usunie ten błąd.

  1. Naciśnij klawisz Windows + R , aby otworzyć okno dialogowe uruchamiania
  2. wpisz: regedit i naciśnij Enter, aby otworzyć rejestr
  3. W widoku drzewa po lewej stronie kliknij następującą ścieżkę HKEY_LOCAL_MACHINE> OPROGRAMOWANIE> ZASADY> Microsoft> Certyfikat systemu> Authroot
  4. Teraz kliknij dwukrotnie DisableRootAutoUpdate po prawej stronie i ustaw na 0 (zero) w wyświetlonym oknie dialogowym
  5. Uruchom ponownie komputer, aby zastosować zmiany w rejestrze, a ten błąd nie będzie już wyświetlany

Powyższe rozwiązanie dotyczy systemu Windows 8. Jest prawie identyczne w nowszych wersjach, ale nie jestem pewien, czy dotyczy to starszych wersji, jak XP i Vista. Więc to musi być sprawdzone.

Maulik Modi
źródło
Czy wiesz, co oznacza ta opcja?
MasterJoe2
@ testerjoe2: No sir
Maulik Modi
1
Cierpiał z powodu tej google-analytics.com wraz z różnymi innymi domenami Google. Ta odpowiedź rozwiązała mój problem.
Shawn
Artykuł pod adresem support.microsoft.com/en-us/help/2813430/… wyjaśnia zachowanie kluczy, które zostały wprowadzone w poprawce dla systemu Windows Vista. Ustawienie tej konkretnej wartości na 0 powoduje, że zaktualizowane certyfikaty główne są automatycznie pobierane z witryny Windows Update i instalowane w magazynie zaufanych głównych urzędów certyfikacji. W środowisku przedsiębiorstwa można to wyłączyć ze względów bezpieczeństwa; oznacza to jednak, że ktoś powinien zarządzać zaufanymi głównymi urzędami certyfikacji na poziomie przedsiębiorstwa.
Jamie Zobacz