Https erzwingen
Https erzwingen
Hallo, hat jemand einen Tip, wie ich Https für eine Seite auf meinem Webserver intern und extern erzwingen kann? Von extern her benutze ich einen DynDNS-Anbieter, so dass ich meinem internen Servernamen nur ein .xx.de anhängen muss.
Mit Redirect in der /etc/apache2/sites-enabled/000-default.conf klappt das immer nur für eine URL oder gibt es noch andere Möglichkeiten?
Mein Dank gilt schon mal einigen Hinweisen.
Mit Redirect in der /etc/apache2/sites-enabled/000-default.conf klappt das immer nur für eine URL oder gibt es noch andere Möglichkeiten?
Mein Dank gilt schon mal einigen Hinweisen.
- heisenberg
- Beiträge: 3556
- Registriert: 04.06.2015 01:17:27
- Lizenz eigener Beiträge: MIT Lizenz
Re: Https erzwingen
Das dürfte helfen:
https://de.wikipedia.org/wiki/HTTP_Stri ... t_Security
Ansonsten kannst Du doch auch einfach eine Datei einbinden mit dem Inhalt If not https -> redirect to https://%{hostname}. Das dürfte auch als Wildcard funktionieren.
https://de.wikipedia.org/wiki/HTTP_Stri ... t_Security
Ansonsten kannst Du doch auch einfach eine Datei einbinden mit dem Inhalt If not https -> redirect to https://%{hostname}. Das dürfte auch als Wildcard funktionieren.
Jede Rohheit hat ihren Ursprung in einer Schwäche.
Re: Https erzwingen
Folgende Lösung für die Apache2-Konfiguration:
oder für .htaccess:
Leider weiß ich nicht ob es bei verschiedenen Namen (intern, extern) funktioniert. Evtl. einfach zwei virtuelle Webserver laufen lassen. Natürlich kannst du auch HTTP deaktivieren, nur dann muss man immer https:// eingeben. Ich finde eine automatische Umleitung von HTTP auf HTTPS einfach schöner.
Code: Alles auswählen
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Code: Alles auswählen
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{ENV:HTTPS} !=on
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
- heisenberg
- Beiträge: 3556
- Registriert: 04.06.2015 01:17:27
- Lizenz eigener Beiträge: MIT Lizenz
Re: Https erzwingen
Es ist halt die Frage ob man das Ziel variabel haben will oder eher fest konfiguriert. Wenn es variable ist, braucht man natürlich auch für jeden HTTPS-Zielhost ein Zertifikat oder der Browser meckert eben an, dass die Verbindung nicht sicher ist.
Jede Rohheit hat ihren Ursprung in einer Schwäche.
Re: Https erzwingen
Man kann ruhig ein gemeinsames Zertifikat verwenden. Intern kann man z.B. die Fehlermeldung ignorieren und den Fingerprint kann man sowieso auch manuell prüfen. Sicher ist die Verbindung trotzdem auch wenn der Browser was anderes behauptet.... braucht man natürlich auch für jeden HTTPS-Zielhost ein Zertifikat oder der Browser meckert eben an, dass die Verbindung nicht sicher ist.
- heisenberg
- Beiträge: 3556
- Registriert: 04.06.2015 01:17:27
- Lizenz eigener Beiträge: MIT Lizenz
Re: Https erzwingen
So erzieht man sich Leute, die Fehlermeldungen ignorieren.
Jede Rohheit hat ihren Ursprung in einer Schwäche.
Re: Https erzwingen
Es ist nur ’ne Warnung, und man kann das Zertifikat manuell prüfen, bestätigen, speichern. Dann gibt’s erst genau dann wieder eine Warnung, wenn sich das Cert geändert hat. Zumindest ich sehe das Problem damit nicht; noch weniger sehe ich den Sinn darin, für interne Sachen ein weiteres Cert zu holen und das Ganze extra zu konfigurieren
Re: Https erzwingen
Hallo, das klappt bei mir nur entweder oder. Es handelt sich um eine Testinstallation von Nextcloud und habe mal verschiedene Anleitungen probiert.uname hat geschrieben:Folgende Lösung für die Apache2-Konfiguration:
oder für .htaccess:Code: Alles auswählen
RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
Leider weiß ich nicht ob es bei verschiedenen Namen (intern, extern) funktioniert. Evtl. einfach zwei virtuelle Webserver laufen lassen. Natürlich kannst du auch HTTP deaktivieren, nur dann muss man immer https:// eingeben. Ich finde eine automatische Umleitung von HTTP auf HTTPS einfach schöner.Code: Alles auswählen
RewriteEngine On RewriteCond %{HTTPS} !=on RewriteCond %{ENV:HTTPS} !=on RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
nextcloud-redirect.conf
Code: Alles auswählen
Alias /nextcloud "/var/www/nextcloud/"
<IfModule mod_ssl.c>
<VirtualHost *:443>
DocumentRoot /var/www/nextcloud
<Directory /var/www/nextcloud/>
Options +FollowSymlinks
AllowOverride All
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud
</Directory>
<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15768000; preload"
</IfModule>
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
</VirtualHost>
</IfModule>
Das ist blöd, finde ich, denn Roundcube macht da keine Probleme.<VirtualHost *:80>
ServerName servername
ServerAdmin root@tservername
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}$1 [R=301,L]
</VirtualHost>
Re: Https erzwingen
Genau so war es auch gemeint. Wenn du den Server konfigurieren kannst, nutzt du die erste Möglichkeit. Hast du nur Zugriff auf den Webspace eher die zweite Möglichkeit.Hallo, das klappt bei mir nur entweder oder.
Was passiert, wenn du für <VirtualHost>...</VirtualHost> die erste Möglichkeit nutzt? Leider kenne ich mich mit Nextcloud nicht aus. Ist Nextcloud ein eigener Webserver oder integriert der sich irgendwie in Apache2?