Re: Firefox und Strict-Transport-Security funktioniert! Und wie!
From
Raphael Eiselstein <rabe@...>
Date
On Sun, Apr 13, 2014 at 01:04:06AM +0200, Raphael Eiselstein wrote:
> 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.
Ich haette das vielleicht vorher ausprobieren sollen.
Genau *DAS* funktioniert nicht (im Reverse-Proxy):
"Redirect /wiki/" unterliegt scheinbar dem "ProxyPass /".
Ich habe es nun im Wiki-Apache auf wiki.uugrn.lan eingetragen:
<VirtualHost *:443>
ServerAdmin wiki@...
ServerName wiki.uugrn.org
DocumentRoot /data/www/wiki.uugrn.org/secure/
Redirect /wiki/index.php https://wiki.uugrn.org/index.php
Redirect /wiki/ https://wiki.uugrn.org/
[...]
</VirtualHost>
Damit tut es dann jetzt auch:
------------------------------------------------
$ curl --output /dev/null --silent -D - http://wiki.uugrn.org/wiki/Hauptseite
HTTP/1.1 302 Found
Server: Apache
Date: Sat, 12 Apr 2014 23:19:27 GMT
Location: https://wiki.uugrn.org/Hauptseite
Content-Length: 217
Content-Type: text/html; charset=iso-8859-1
------------------------------------------------
D.h. der URL http://wiki.uugrn.org/wiki/Hauptseite wird nun an 2 Stellen
korrigiert:
1. im HTTP-Vhost auf dem Reverse-Proxy wird alles 1:1 auf HTTPS
umgeleitet (das, was HTST clientseitig dann auch tut)
2. im VirtualHost auf dem Zielserver wird dann der URI korrigiert fuer
/wiki/index.php und /wiki/.
Noch besser waere es, die ohnehin dort vorhandenen Rewriting-Rules fuer
die MediaWiki-Pretty-URLs so zu erweitern, dass /wiki/index.php und
/wiki/ passend umgeschrieben werden (mit Redirect), transparenter
erscheint wir die Verwendung von "Redirect" anstelle von "RewriteCond"
Gruss
Raphael
PS: MediaWiki mit Pretty-URLs und Article-Namespace direkt unter "/" ist
kein Hexenwerk, auch wenn diverse Anleitungen das (teilweise sogar
falsch) dokumentieren.
<VirtualHost *:443>
ServerAdmin wiki@...
ServerName wiki.uugrn.org
DocumentRoot /path/to/htdocs/
Redirect /wiki/index.php https://wiki.uugrn.org/index.php
Redirect /wiki/ https://wiki.uugrn.org/
ErrorLog /path/to/logs/error.log
CustomLog /path/to/logs/access.log common
CustomLog /path/to/logs/combined.log combined
TransferLog /path/to/logs/transfer.log
php_admin_flag safe_mode Off
php_admin_flag file_uploads On
php_value upload_max_filesize 16M
php_admin_flag allow_url_fopen On
php_value max_input_time 600
php_value max_execution_time 120
RLimitCPU 120 240
RLimitMEM 268435456 536870912
RLimitNPROC 50 100
<Directory "/path/to/htdocs/">
AllowOverride none
Order allow,deny
Allow from all
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php5 [L]
</Directory>
SetEnv wikiServer satellitehttps
Include /…/ssl/…/httpd_ssl.conf
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory "/usr/local/www/apache22/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
</VirtualHost>
wobei /…/ssl/…/httpd_ssl.conf einheitlich fuer alle HTTPS-Server so aussieht:
-----------------------------
SSLEngine on
SSLProtocol ALL -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCipherSuite HIGH:!ADH:!AECDH:!RC4:!3DES
SSLCertificateFile /…/ssl/…/server_crt.pem
SSLCertificateKeyFile /…/ssl/…/server_key.pem
SSLCertificateChainFile /…/ssl/…/server_intermediate_crt.pem
-----------------------------
--
Raphael Eiselstein <rabe@...> 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/