HSTS funktioniert nicht mit Chrome

2177
user2913139

Ich habe Apache so konfiguriert, dass der HSTS-Header zurückgegeben wird. Wenn Sie von Google Chrome aus eine Verbindung zu https://lab20.example.com herstellen und mit Entwicklertools arbeiten, kann ich den folgenden Antwortheader sehen:Strict-Transport-Security:max-age=63072000; includeSubdomains;

Aber es funktioniert nicht. Wenn ich versuche, auf http://lab20.example.com zuzugreifen, lässt Chrome dies zu.

Auch beim Ausführen von Chrome: chrome://net-internals/#hsts Query domain "lab20.example.com"Ich erhalte "Response Not Found".

Könnte jemand erklären, warum das passiert?

2
Aktivieren Sie hsts auf dem Server mussdroid vor 7 Jahren 0

3 Antworten auf die Frage

6
sfarbota

Für andere, bei denen ein ähnliches Problem auftritt - kann es sein, dass Ihr Browser noch nicht über HTTPS auf die Website zugreift. Versuchen Sie, über HTTPS und erneut über HTTP darauf zuzugreifen. Wenn HSTS korrekt implementiert ist, sollte diese letzte Anforderung fehlschlagen. MDN erklärt es schön :

Hinweis: Der Strict-Transport-SecurityHeader wird vom Browser ignoriert, wenn auf Ihre Site mit zugegriffen wird HTTP. Dies liegt daran, dass ein Angreifer HTTPVerbindungen abfangen und den Header einfügen oder entfernen kann. Wenn auf Ihre Site HTTPSohne Zertifikatfehler zugegriffen wird, weiß der Browser, dass Ihre Site in der HTTPSLage ist, und berücksichtigt die Strict-Transport-SecurityKopfzeile.

Gibt es einen Grund für die Ablehnung? Sollte dies eher ein Kommentar als eine Antwort oder etwas sein? sfarbota vor 6 Jahren 0
Ich verstehe das Downvoting nicht. Ich hatte auch das gleiche Problem und es war für mich nicht offensichtlich, dass es nicht über "http:" funktioniert, es sei denn, ich habe Ihre Antwort gelesen. ernesto che vor 6 Jahren 0
0
isdf

Haben Sie Ihre Site-Konfiguration so konfiguriert, dass Apache SSL für alle Subdomains erzwingt, nicht nur für example.com und www.example.com?

Ich glaube auch, dass die chrome: // net-internals / # hsts nur korrekte Abfragen von Sites anzeigt, die vorab geladen und über https://hstspreload.appspot.com/ hinzugefügt wurden . Dies erklärt, warum chrome: // net-internals / # hsts für Sie nicht funktioniert.

Ich habe nur eine Domäne: lab20.example.com mit virtualhost für Port 80 und einen weiteren virtualhost für Port 443 mit aktiviertem HSTS. Und ja - wie Sie im Header "includeSubdomains" sehen können. (Mein Webbrowser erhält in der Antwort einen korrekten Header, wenn er über https nach lab2.example.com fragt). Warum funktioniert das nicht, getestet mit Chrome 47 und 52 (47 funktioniert möglicherweise nicht wie in http://caniuse.com/#feat=stricttransportsecurity) user2913139 vor 7 Jahren 0
Hmm, ich bin mir nicht sicher. Ich würde hinzufügen, dass alle Anfragen auf lab20.example.com:80 an lab20.example.com:443 (https://wiki.apache.org/httpd/RedirectSSL) umgeleitet werden. Wenn Sie HSTS nur für die bestimmte Subdomäne benötigen, können Sie versuchen, includeSubdomains zu entfernen und einfach den HSTS-Header in der Subdomäne zu platzieren. Eine andere Sache, es könnte dumm sein, aber ich würde 'includeSubDomains statt' includeSubdomains 'setzen. isdf vor 7 Jahren 0
OK, ich habe es behoben. Das Problem war, dass ich keine CA im Chrome Trusted Store hatte. Ausnahme manuell hinzugefügt. Es sieht so aus, als würde Chrome die HSTS-Header nicht auszeichnen. Sobald CA zum Trusted Store hinzugefügt wurde, funktioniert alles gut - ich sehe meine Domain auch in chrome: // net-internals / # hsts. Vielen Dank ! user2913139 vor 7 Jahren 1
0
RailroadHill

Dies kann daran liegen, dass auf Ihrem PC NO-SSL aktiviert oder erzwungen ist. Wenn Sie NO-SSL nicht deaktivieren können, unterstützt Ihr PC die Deaktivierung von NO-SSL möglicherweise nicht.