Chrome: Die Website verwendet HSTS. Netzwerkfehler… diese Seite wird wahrscheinlich später funktionieren


161

Ich entwickle mich gegen localhost. Heute Morgen, direkt nachdem ich Fiddler verwendet habe, wurde dieser Fehler auf Chrome angezeigt (funktioniert in Firefox korrekt).

"Sie können localhost derzeit nicht besuchen, da die Website HSTS verwendet. Netzwerkfehler und Angriffe sind normalerweise nur vorübergehend, sodass diese Seite wahrscheinlich später funktioniert." Geben Sie hier die Bildbeschreibung ein

Jetzt funktioniert localhost nur dann in Chrome, wenn Fiddler ausgeführt wird. Ich habe bereits sichergestellt, dass die von Fiddler vorgenommenen Proxy-Weiterleitungen korrigiert werden, wenn Fiddler heruntergefahren wird.

Ich habe auch versucht, das Zertifikat in mein vertrauenswürdiges Stammverzeichnis zu importieren und den Browser (und auch den Computer) neu zu starten.


2
Dieses Problem tritt auf, wenn der IT-Administrator seine Richtlinien ändert. Alles was ich tun muss, ist den Befehl auszuführen: gpupdate / force
Jacob Phan

Antworten:


189

Ein sehr schneller Weg, dies zu umgehen, ist, wenn Sie den Bildschirm "Ihre Verbindung ist nicht privat" anzeigen:

Art badidea

Typ thisisunsafe(Dank an The Java Guy für das Finden der neuen Passphrase)

Dadurch wird die Sicherheitsausnahme zugelassen, wenn Chrome andernfalls nicht zulässt, dass die Ausnahme per Klick festgelegt wird, z. B. für diesen HSTS-Fall.

Dies wird natürlich nur für lokale Verbindungen und virtuelle Maschinen mit lokalem Netzwerk empfohlen, hat jedoch den Vorteil, dass es für VMs verwendet wird, die für die Entwicklung verwendet werden (z. B. für lokale Verbindungen mit Portweiterleitung), und nicht nur für direkte lokale Hostverbindungen.

Hinweis: Die Chrome-Entwickler haben diese Passphrase in der Vergangenheit geändert und können dies möglicherweise erneut tun. Wenn Sie badideanicht mehr funktionieren, hinterlassen Sie bitte hier eine Notiz, wenn Sie die neue Passphrase lernen. Ich werde versuchen, das gleiche zu tun.

Bearbeiten: Ab dem 30. Januar 2018 scheint diese Passphrase nicht mehr zu funktionieren.

Wenn ich einen neuen finden kann, werde ich ihn hier posten. In der Zwischenzeit werde ich mir die Zeit nehmen, um ein selbstsigniertes Zertifikat mit der in diesem Beitrag zum Stapelüberlauf beschriebenen Methode einzurichten:

Wie erstelle ich ein selbstsigniertes Zertifikat mit openssl?

Bearbeiten: Ab dem 1. März 2018 und der Chrome-Version 64.0.3282.186 funktioniert diese Passphrase wieder für HSTS-bezogene Blöcke auf .dev-Sites.

Bearbeiten: Ab dem 9. März 2018 und Chrome Version 65.0.3325.146 funktioniert die badideaPassphrase nicht mehr.

Bearbeiten 2: Das Problem mit selbstsignierten Zertifikaten scheint darin zu bestehen, dass die Sicherheitsstandards heutzutage allgemein verschärft werden und ihre eigenen Fehler auftreten (nginx lehnt beispielsweise das Laden eines SSL / TLS-Zertifikats ab, das a enthält standardmäßig selbstsigniertes Zertifikat in der Autoritätskette).

Die Lösung, mit der ich jetzt arbeite, besteht darin, die Top-Level-Domain auf allen meinen .app- und .dev-Entwicklungsseiten mit .test oder .localhost auszutauschen. Chrome und Safari akzeptieren keine unsicheren Verbindungen zu Standarddomänen der obersten Ebene (einschließlich .app) mehr.

Die aktuelle Liste der Standard-Top-Level-Domains finden Sie in diesem Wikipedia-Artikel, einschließlich Domains mit besonderer Verwendung:

Wikipedia: Liste der Internet-Top-Level-Domains: Domains für besondere Zwecke

Diese Top-Level-Domains scheinen von den neuen Nur-https-Beschränkungen ausgenommen zu sein:

  • .lokal
  • .localhost
  • .Prüfung
  • (jede benutzerdefinierte / nicht standardmäßige Top-Level-Domain)

Weitere Informationen finden Sie in der Antwort und im Link von Codinghands zur ursprünglichen Frage:

Antwort von Codinghands


18
Ich habe noch nie davon gehört, aber aus irgendeinem Grund funktioniert es! Vielen Dank!
Alexey

massive Hilfe! Ich danke dir sehr!
RHSmith159

Ich kann nicht einmal glauben, dass das funktioniert, aber es funktioniert. Ich bin mir nicht sicher, ob ich glücklich oder sauer sein sollte, dass dies nicht dokumentiert ist. Ich habe über die Jahre STUNDEN damit verbracht, mich mit diesem Mist in Entwicklungsumgebungen zu befassen.
Scott Byers

7
Verwenden Sie thisisunsafeInsread von badidea. Dies wurde mit der neuen Version geändert
The Java Guy

es funktioniert +1, aber Chrom sollte wirklich eine Option hinzufügen, um weiterhin mit Warnungen fortzufahren, anstatt nur zu blockieren
5413668060

186

Wenn Sie https: // localhost zuvor besucht haben, wurde dies nicht nur über einen sicheren Kanal (https statt http) besucht, sondern auch Ihrem Browser mithilfe eines speziellen HTTP-Headers mitgeteilt: Strict-Transport-Security (häufig mit HSTS abgekürzt) ), dass es NUR https für alle zukünftigen Besuche verwenden sollte.

Dies ist eine Sicherheitsfunktion, mit der Webserver verhindern können, dass Personen (absichtlich oder von einer bösen Partei) auf http herabgestuft werden.

Wenn Sie dann jedoch Ihren https-Server ausschalten und nur http durchsuchen möchten, können Sie dies nicht (beabsichtigt - das ist der Punkt dieser Sicherheitsfunktion).

HSTS verhindert außerdem, dass Sie frühere Zertifikatfehler akzeptieren und überspringen.

Geben Sie Folgendes in Ihre Chrome-Adressleiste ein, um dies zurückzusetzen, damit HSTS nicht mehr für localhost festgelegt ist:

chrome://net-internals/#hsts

Hier können Sie diese Einstellung für "localhost" löschen.

Vielleicht möchten Sie auch herausfinden, wie dies eingestellt wurde, um dieses Problem in Zukunft zu vermeiden!

Beachten Sie, dass für andere Websites (z. B. www.google.com) diese in den Chrome-Code "vorinstalliert" sind und daher nicht entfernt werden können. Wenn Sie sie unter chrome: // net-internals / # hsts abfragen, werden sie als staticHSTS-Einträge aufgelistet .

Beachten Sie schließlich, dass Google mit dem Vorladen von HSTS für die gesamte .dev-Domain begonnen hat: https://ma.ttias.be/chrome-force-dev-domains-https-via-preloaded-hsts/


Ich bekomme das für gmail.com. Ich ging zu chrome: // net-internals / # hsts und fragte gmail.com ab, bekam gefunden: static_sts_domain: gmail.com static_upgrade_mode: STRICT Ich habe versucht, die Domain zu löschen, habe aber immer noch das Problem.
Paiego

Diese Antwort macht für mich Sinn. Mein Problem ist jedoch, dass ich einen Website-Nameserver von WordPress (WordPress gehostet) auf meinen Server (selbst gehostet) geändert habe und dies jetzt bekomme und vermutlich auch alle Chrome-Besucher. Haben Sie eine Idee, wie Sie es für Besucher umgehen können, ohne dass sie ihren Cache löschen?
TomC

2
Grundsätzlich besteht die einzige Antwort darin, HTTPS für die Zukunft zu verwenden oder zu hoffen, dass Benutzer es nicht zwischengespeichert haben. HTTPS ist der Weg nach vorne und frei von LetsEncrypt. Sie sollten auch überprüfen, ob jemand Ihre Website auf Browsercode vorinstalliert hat, aber nicht raten, ob Sie sie selbst zurücksetzen können. Da Wordpress nicht weiß, dass HSTS automatisch hinzugefügt wird, fragen Sie sich, wie das dort angekommen ist.
Barry Pollard

Danke @BazzaDP - sehe keinen Weg daran vorbei. Möglicherweise muss ich die Nameserver zurück ändern, herausfinden, was auf der alten Site HTTPS erzwungen hat, und dann erneut versuchen, zu migrieren. Sie können nicht einfach FTP von von Wordpress gehosteten Blogs auf die neue Site
senden,

2
Wie ich in meiner Antwort erwähnt habe, können vorinstallierte (oder statische STS) Einträge nicht gelöscht werden, da sie im Chrome-Code und nicht in einer lokal gepflegten Liste vorhanden sind. Und gemäß meiner letzten Zeile in meiner Antwort hat Google beschlossen, die gesamte Entwickler-Domain vorab zu laden.
Barry Pollard

22

Klicken Sie auf eine beliebige Stelle im Chrome-Fenster und geben Sie thisisunsafe(anstelle von badideazuvor) Chrome ein.

Diese Passphrase kann sich in Zukunft ändern. Dies ist die Quelle

https://chromium.googlesource.com/chromium/src/+/master/components/security_interstitials/core/browser/resources/interstitial_large.js#19

window.atob('dGhpc2lzdW5zYWZl')Geben Sie gemäß dieser Zeile in Ihre Browserkonsole ein und Sie erhalten die tatsächliche Passphrase.

Diesmal lautet die Passphrase thisisunsafe.


19

Ich hatte dieses Problem mit Websites, die auf XAMPP mit privaten Hostnamen ausgeführt werden. Nicht so privat, stellt sich heraus! Dies waren alles domain.dev, was Google jetzt als private gTLD registriert hat und HSTS auf Domain-Ebene erzwingt. Jeder virtuelle Host wurde auf .devel(eugh) geändert, Apache neu gestartet und jetzt ist alles in Ordnung.


Ich kann dieses Problem mit Opera 50.0.2762.9 bestätigen und das Umschalten meiner Entwicklungsdomäne von .devauf umgeht .develdie Einschränkung.
Courtney Miles

5
RFC 2606 reserviert einige Top-Level-Domains speziell, um Konflikte mit privaten Tests zu vermeiden. Es scheint, dass dies .testfür Entwicklungsumgebungen am besten geeignet ist.
Courtney Miles

Dies hat mir buchstäblich das Leben gerettet, nachdem ich tagelang nicht herausgefunden hatte, warum sich Chrom auf meiner .devlokalen Host-Domain so verhält ... Gott, wer würde das wissen ...
D. Petrov

Tatsächlich wird .test nur zum Testen des aktuellen oder neuen DNS-Codes empfohlen.
Alexey

Dies hier hat mein Problem gelöst. Ich benutze Laragon für meine Entwicklungsumgebung.
Craig

12

Ich hatte kürzlich das gleiche Problem beim Versuch, mit CloudFlare Origin CA auf Domänen zuzugreifen .

Die einzige Möglichkeit, die HSTS-Zertifizierungsausnahme unter Chrome (Windows Build) zu umgehen / zu vermeiden, bestand darin, den kurzen Anweisungen unter https://support.opendns.com/entries/66657664 zu folgen .

Die Problemumgehung:
Fügen Sie die Verknüpfung zu Chrome hinzu --ignore-certificate-errors, öffnen Sie sie erneut und surfen Sie zu Ihrer Website.

Erinnerung:
Verwenden Sie es nur für Entwicklungszwecke.

Geben Sie hier die Bildbeschreibung ein


Vielleicht versuchen Sie es in Google Canary Build google.com/chrome/browser/canary.html
Binyamin

Angenommen, Sie haben keine Site, die einen Zertifizierungsfehler verursacht. Wie würden Sie dann prüfen, ob Ihre Lösung funktioniert? Hilft hier nicht - stackoverflow.com/questions/41902367/...
MasterJoe2

Wie wäre es mit Mac-Versionen?
Der Java-



2

Ich habe den gleichen Fehler und der Inkognito-Modus hat auch das gleiche Problem. Ich behebe dieses Problem durch Löschen des Chrome-Verlaufs.


2

Ich habe sehr lange unter diesem Problem gelitten. Ich konnte keine Websites wie GitHub öffnen. Ich habe fast alle Antworten im Web ausprobiert und niemand hat gearbeitet. Versucht, auch Chrom neu zu installieren. Ich habe die Lösung dafür von unserem Netzwerk-Typ gefunden und es hat funktioniert. Es gibt einen Fix in der Registrierung, der diesen Fehler dauerhaft behebt.

  1. Drücken Sie die Windows + R- Taste, um das Dialogfeld "Ausführen" zu öffnen
  2. Geben Sie : regedit ein und drücken Sie die Eingabetaste, um die Registrierung zu öffnen
  3. Klicken Sie in der Baumansicht links durch den folgenden Pfad: HKEY_LOCAL_MACHINE> SOFTWARE> POLITIK> Microsoft> Systemzertifikat> Authroot
  4. Doppelklicken Sie nun rechts auf DisableRootAutoUpdate und setzen Sie es im angezeigten Dialogfeld auf 0 (Null)
  5. Starten Sie Ihren PC neu, um Registrierungsänderungen zu übernehmen, und Sie erhalten diesen Fehler nicht mehr

Die obige Lösung ist für Windows 8. Sie ist in späteren Versionen fast identisch, aber ich bin mir nicht sicher für frühere Versionen wie XP und Vista. Das muss also überprüft werden.


Wissen Sie, was diese Option bedeutet?
MasterJoe2

@ testerjoe2: Nein, Sir
Maulik Modi

1
Leidete unter dieser google-analytics.com zusammen mit verschiedenen anderen Google-Domains. Diese Antwort hat mein Problem gelöst.
Shawn

Der Artikel unter support.microsoft.com/en-us/help/2813430/… erläutert das Verhalten der Schlüssel, die in einem Patch für Windows Vista eingeführt wurden. Wenn Sie diesen bestimmten Wert auf 0 setzen, werden aktualisierte Stammzertifikate automatisch aus Windows Update abgerufen und im Speicher für vertrauenswürdige Stammzertifizierungsstellen installiert. In einer Unternehmensumgebung kann dies aus Sicherheitsgründen deaktiviert werden. Dies bedeutet jedoch, dass jemand vertrauenswürdige Stammzertifizierungsstellen auf Unternehmensebene verwalten sollte.
JamieSee
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.