[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Firefox und Strict-Transport-Security funktioniert! Und wie!


Hallo zusammen,

Hintergrund: Seit einiger Zeit laeuft das UUGRN-Wiki https-only und 
auch der Artikelnamensraum ist im URL unter /, d.h. die Hauptseite 
ist erreichbar unter https://wiki.uugrn.org/Hauptseite

Frueher war diese unter http://wiki.uugrn.org/wiki/Hauptseite zu finden. 

Damit alte URLs gueltig bleiben, habe ich dafuer folgende Redirects im 
VirtualHost fuer HTTP eingerichtet:

--------------------------------------------------------------
<VirtualHost *:80>
        ServerName                      wiki.uugrn.org
        Redirect        /wiki/index.php https://wiki.uugrn.org/index.php
        Redirect        /wiki/          https://wiki.uugrn.org/
        Redirect        /               https://wiki.uugrn.org/
</VirtualHost>
--------------------------------------------------------------

Das fuehrt erwartungsgemaess dazu, dass der Server auf eine Anfrage mit
einem 302 antwortet ("http" vs "https" und "/" vs "/wiki" beachten):

--------------------------------------------------------------
$ curl --output /dev/null --silent -D - http://wiki.uugrn.org/wiki/Hauptseite
HTTP/1.1 302 Found
Server: Apache
Date: Sat, 12 Apr 2014 22:42:21 GMT
Location: https://wiki.uugrn.org/Hauptseite
Content-Length: 217
Content-Type: text/html; charset=iso-8859-1
--------------------------------------------------------------

Der VirtualHost fuer https://wiki.uugrn.org/ sieht so aus:

--------------------------------------------------------------
<VirtualHost *:443>
        ServerName              wiki.uugrn.org
        Include                 /â?¦/ssl/â?¦/httpd_ssl.conf
        SSLProxyEngine          on
        ProxyPass               / https://wiki.uugrn.lan/ connectiontimeout=5 timeout=30
        ProxyPreserveHost       On

        BrowserMatch ".*MSIE.*"  nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
        Header always set Strict-Transport-Security "max-age=31536000"
</VirtualHost>
--------------------------------------------------------------

Alle Requests die auf https://wiki.uugrn.org/ reinkommen werden intern
an https://wiki.uugrn.lan/ durchgereicht (unter Beibehaltung des
Host-Headers) und dort dann verarbeitet. Es gibt hier keine redirects 
oder rewriting mehr, das war ja nur im Kontext von HTTP erforderlich fuer
die alten Wiki-URLs.


==> Neu ist hier der Header Strict-Transport-Security, den ich im Rahmen 
der "SSL-Optimierung" in den letzten Tagen eingebaut habe. 

Dieser Response-Header signalisiert dem Client, also dem Webbrowser, dass 
der Inhalt dieser Webseite kuenftig *nur* und *ausschliesslich* per HTTPS 
angefragt werden soll bzw. niemals per HTTP. 
https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security


==> Wirkt sofort: Ein Bookmark in meinem Firefox zeigt noch auf 
http://wiki.uugrn.org/wiki/Hauptseite und ich lande damit auf 
https://wiki.uugrn.org/Wiki/Hauptseite was in dieser Form nicht
existiert. Auf den ersten Blick fuer mich ein Bug mit den Redirect-Regeln
im Reverse-Proxy, auf den zweiten Blick dann doch nicht.

Was ist passiert? Firefox hat den Request â?? aufgrund von HTST â?? gar 
nicht erst per HTTP rausgeschickt (wo dann der Redirect vom Webserver 
auf HTTPS gekommen waere) sondern direkt auf HTTPS und somit auch vorbei 
an den Redirect-Regeln fuer /wiki/ im VirtualHost fuer HTTP.

Korrekt waere in diesem Fall, die beiden Redirects aus dem
HTTP-VirtualHost in den HTTPS-VirtualHost zu uebernehmen, d.h. im
HTTP-VHost ausschliesslich "/" nach "https://wiki.uugrn.org/"; umzuleiten
und dann im HTTPS-Vhost die alten URIs unter "/wiki/" nach "/"
umzuleiten. Dann klappt das auch mit HSTS.

Sichere Gruesse
Raphael 

-- 
Raphael Eiselstein <rabe@xxxxxxxxx>               http://rabe.uugrn.org/
PGP (neu):            4E63 5307 6F6A 036D 518D  3C4F 75EE EA14 F625 DB4E
.........|.........|.........|.........|.........|.........|.........|..




-- 
UUGRN e.V. http://www.uugrn.org/
http://mailman.uugrn.org/mailman/listinfo/uugrn
Wiki: https://wiki.uugrn.org/UUGRN:Mailingliste
Archiv: http://lists.uugrn.org/