HTTP zu HTTPS Redirect

HTTPS Weiterleitung in der htaccess für apache2

Gepostet von Andreas Nölke am

HTTPS ist heutzutage Standard und aus dem Internet nicht mehr wegzudenken. Für Webseiten aller Art ist es also immens wichtig sicherzustellen, dass die Seite einwandfrei aufgerufen werden kann. Wie das gemacht wird und getestet werden kann erkläre ich in diesem Artikel.

Vorbereitungen

Zuersteinmal muss ein SSL Zertifikat erstellt werden. Hierzu können je nach Hoster unterschiedliche Schritte notwendig sein. Es ist sehr zu empfehlen eine Offizielle Zertifizierungsstelle zu verwenden. Mit selbst generierten Zertifikaten wird die Webseite generell als nicht sicher markiert oder vom Browser mit großer Warnung angemerkt, dass das Zertifikat ungültig und die Webseite unsicher ist.

Nachdem das Zertifikat beantragt und erfolgreich für die Domain eingerichtet wurde kann die Seite mit "https://deine.domain" aufgerufen werden.

Im Browser sieht man das, je nach Zertifikat und Browser, an einem grauen oder grünen Schloß in der Adress Zeile.

HTTP zu HTTPS Weiterleitung einrichten

Die Weiterleitung erfordert das Apache Servermodul rewrite. Dieses muss auf dem Server aktiviert werden. Auch hier kann es je nach Hoster unterschiedliche Wege geben. In der Regel ist bei einem Managed Hosting Paket das rewrite Modul bereits aktiv.

Das rewrite Modul kann mit folgendem Befehl aktiviert werden.

$ sudo a2enmod rewrite

Danach muss der Abpache Server neu gestartet werden.

$ sudo /etc/init.d/apache2 restart

Nun die .htaccess Datei im domain root Verzeichnis bearbeiten und folgende Zeilen einfügen:

# ssl redirect
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]

Im gesamten sollte die Datei ungefähr so aus sehen.

<IfModule mod_rewrite.c>
    RewriteEngine On

    # ssl redirect
    RewriteCond %{HTTPS} !=on
    RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
</IfModule>

Die .htaccess Datei speichern. Ein Apache restart ist nicht notwendig. Nun kann die Seite im Browser gerufen werden mit "http://deine.domain". Die Weiterleitung geht in einem Sekundenbruchteil auf https. Sollte es Probleme geben und die Seite sieht nicht korrekt aus, liegt ein Apache Konfig Fehler vor.

Hier müssen die Logs überprüft und eine individuelle Fehlersuche vorgenommen werden.

Testen der Weiterleitung

Treten beim erstmaligem aufruf der Webseite Probleme auf und dann nicht mehr. Ist der Fall naheliegend, dass der Browser cache einem "vorgauklelt" es geht alles.

Um sicherzustellen, dass die Weiterleitung sauber funktioniert, macht es Sinn, die Webseite in einem Private Tab mit http zu rufen. Sobald die Seitendarstellung nicht passt oder das Zertifikat Probleme macht, stimmt was mit der htaccess config nicht. In diesem Fall sollte nochmal geprüft werden ob das Apache Modul rewrite wirklich aktiviert ist.

Wurde das Fehlerbild so nachgestellt, muss der Private Browser geschlossen werden um den Cache zu löschen, oder den Cache manuell löschen.