HTTP-Weiterleitung und HSTS
Voraussetzung ist eine funktionierende HTTPS-Einrichtung mit geprüftem Zertifikatsvertrauen. Richte erst danach die Weiterleitung und HSTS ein.
HTTP auf HTTPS umleiten
Erst wenn der HTTPS-Zugriff funktioniert, ersetzt Du den bisherigen Port-80-VirtualHost
in /etc/apache2/sites-available/000-default.conf durch eine Weiterleitung.
In dieser Übung wird die bisherige Default-Site ausschließlich für Nextcloud verwendet:
<VirtualHost *:80>
ServerName nc.home.arpa
Redirect permanent / https://nc.home.arpa/
</VirtualHost>
Danach apache2ctl configtest ausführen und bei Erfolg systemctl reload apache2.
Falls Dein Server mehrere Websites betreibt, musst Du die Weiterleitung stattdessen
in dem tatsächlich für Nextcloud zuständigen HTTP-VirtualHost einrichten.
HSTS nach funktionierender Vertrauenseinrichtung aktivieren
Füge innerhalb des HTTPS-VirtualHosts in nextcloud-ssl.conf hinzu:
Prüfe und lade Apache erneut wie oben beschrieben. HSTS wird nur über HTTPS berücksichtigt und setzt eine fehlerfreie, vom Client akzeptierte TLS-Verbindung voraus. Bei der selbstsignierten Übungseinrichtung ist dafür die ausdrückliche Vertrauenseinrichtung erforderlich. Die Laufzeit bedeutet, dass sich der Browser HTTPS für diesen Host langfristig merkt.
Mit eingerichtetem Zertifikatsvertrauen kannst Du den Header prüfen. Auf dem Server kannst Du das öffentliche Zertifikat für diesen Test ausdrücklich angeben:
Die Ausgabe sollte den Header Strict-Transport-Security enthalten. curl -k würde
die Zertifikatsprüfung umgehen und ist deshalb kein Nachweis für korrektes Vertrauen.
includeSubDomains verwenden wir nicht pauschal; es würde die HTTPS-Vorgabe auch auf
alle Subdomains ausweiten.
HSTS-Warnung verstehen
Einige Header sind in Ihrer Instanz nicht richtig eingestellt - Der Strict-Transport-Security-HTTP-Header ist nicht gesetzt (er sollte mindestens 15552000 Sekunden betragen). Für erhöhte Sicherheit wird empfohlen, HSTS zu aktivieren.
HSTS muss im HTTPS-VirtualHost auf Port 443 gesetzt werden. Ein Header über
HTTP aktiviert HSTS im Browser nicht. Die vollständige TLS-Konfiguration und ihre
Prüfung stehen in Zertifikate und HTTPS.
Dort verwenden wir durchgehend /etc/apache2/sites-available/nextcloud-ssl.conf.
Nach funktionierender HTTPS-Einrichtung gehört diese Zeile innerhalb dieses VirtualHosts:
Das Apache-Modul headers muss aktiviert sein. Bei selbstsignierten Zertifikaten muss
der Browser dem Zertifikat vertrauen; eine Ausnahme nach einer Zertifikatswarnung ist
nicht gleichbedeutend mit einer verlässlich eingerichteten Vertrauenskette. HSTS erst
nach erfolgreicher Zertifikatsprüfung aktivieren. includeSubDomains wird hier nicht
pauschal gesetzt, da dafür alle betroffenen Subdomains HTTPS unterstützen müssten.