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

Autor: Raphael Eiselstein <rabe_at_uugrn.org>
Datum: Sun, 13 Apr 2014 01:04:06 +0200
Hallo zusammen,

Hintergrund: Seit einiger Zeit läuft 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

Früher war diese unter http://wiki.uugrn.org/wiki/Hauptseite zu finden. 

Damit alte URLs gültig bleiben, habe ich dafür folgende Redirects im 
VirtualHost für 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 führt erwartungsgemäß 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
Date: Sat, 12 Apr 2014 22:42:21 GMT
Server: Apache
Location: https://wiki.uugrn.org/Hauptseite
Content-Length: 217
Content-Type: text/html; charset=utf-8
--------------------------------------------------------------

Der VirtualHost für 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 für
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 künftig *nur* und *ausschließlich* 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 für 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 wäre) sondern direkt auf HTTPS und somit auch vorbei 
an den Redirect-Regeln für /wiki/ im VirtualHost für HTTP.

Korrekt wäre in diesem Fall, die beiden Redirects aus dem
HTTP-VirtualHost in den HTTPS-VirtualHost zu übernehmen, d.h. im
HTTP-VHost ausschließlich "/" 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 Grüße
Raphael 

-- 
Raphael Eiselstein <rabe@uugrn.org>               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/

Empfangen am 13.04.2014

Dieses Archiv wurde generiert von hypermail 2.2.0 : 13.04.2014 CEST