HSTS einrichten

Tone

beobachtet
Registriert
20 Juli 2013
Beiträge
300
Moin,
ich wollte meinen kleinen Webserver jetzt HSTS verpassen, allerdings funktioniert die Geschichte nicht so recht.
Die Seite ist nach wie vor über http erreichbar bzw. leitet nicht auf https um.

mod_Headers habe ich aktiviert bzw. war es schon ("Module headers already enabled")

Meine vHost Datei sieht so aus:


[src=apache]
<VirtualHost *:443>


SSLEngine on
SSLCertificateFile /etc/ssl/certs/apache.crt
SSLCertificateKeyFile /etc/ssl/private/apache.key


Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains"

# Pfad zu den Webinhalten
DocumentRoot /var/www/

</VirtualHost>
[/src]

Im Grunde habe ich mich an diese Anleitung gehalten:

Ich habe auch schon nach anderen Anleitungen gesucht, allerdings unterscheiden diese sich nicht von dieser, daher vermute ich, dass der Fehler wo anders liegt.
Habt ihr da ein paar Anlaufstellen für mich?
 
Hast du in der Konfiguration für den Virtualhost auf Port 80 eine Weiterleitung auf https erzwungen?

Dafür muss mod_rewrite enabled und eine Rewrite-Condition wie z. B. diese definiert werden:

[src=bash]
<VirtualHost *:80>

ServerName deinedomain.de
ServerAlias www.deinedomain.de

RewriteEngine on
ReWriteCond %{SERVER_PORT} !^443$
RewriteRule ^/(.*) https://www.deinedomain.de/$1 [NC,R,L]
[/src]
 
  • Thread Starter Thread Starter
  • #3
Ahh, ich glaube dann habe ich was falsch verstanden.

HSTS ist also nicht "selbstständig" sondern benötigt noch zwingend Redirect oder rewrite?
 
Stell dir das so vor: Dein Apache hört nachwievor auf Port 80 (http) und auf Port 443 (https). Wenn jemand auf 443 connected, bekommt sein Browser über den HTTP Header mitgeteilt, dass es keinen Downgrade von https auf http geben darf. Wenn jemand auf Port 80 connected, gibt es den HSTS Header gar nicht. Deshalb musst du zuerst über Redirect/Rewrite dem Webserver sagen, dass der Besucher von Port 80 auf 443 Umgeleitet werden soll, wo dann der HSTS Header verwendet werden kann.
 
Zurück
Oben