Contao-Website auf HTTPS umstellen

In diesem Artikel erkläre ich dir, wie du eine Contao-Website auf https (SSL-Verschlüsselung bzw. TLS-Verschlüsselung) umstellst.

Contao auf https umstellen

Wenn du dich bisher nur wenig mit SSL-Zertifikaten und Verschlüsselung beschäftigt hast, dann bist du nicht allein. Trotzdem gibt es mittlerweile viele Gründe, warum eine Verschlüsselung der Daten über HTTPS notwendig ist. Da wären zum Beispiel die Übertragung sensibler Daten bei einen Online-Shop. Aber selbst wenn du ein Bewerbungsformular oder nur ein Kontaktforumlar auf der Website hast, sollten diese Daten verschlüsselt übertragen werden.

Außerdem ist HTTPS mittlerweile ein Ranking Faktor für Suchmaschinenoptimierung.

HTTPS als SEO Ranking-Faktor

Im August 2014 hat Google HTTPS als Ranking-Faktor mit aufgenommen. Bisher zwar nur schwach gewichtet, räumt er Websites mit HTTPS immerhin einen kleinen Vorteil ein. Teilweise konnten Websites nur durch die Umstellung ihre Sichtbarkeit um bis zu 5% erhöhen.

5% – okay, das ist nicht viel – aber das könnte sich in Zukunft durchaus ändern. Bisher werden nur etwa 1% aller in Google gelisteten Websites über HTTPS verschlüsselt. Um Unternehmen weiter zu ermutigen auf HTTPS umzustellen, könnte der Ranking-Faktor zukünftig noch stärker ins Gewicht fallen.

Doch was hält dich davon ab HTTPS einzusetzen? Häufig höre ich folgende 3 Gründe:

  1. SSL-Zertifikate sind teuer
  2. Es gibt zu viele Optionen bei der Bestellung eines Zertifikats
  3. SSL-Zertifikate sind umständlich einzurichten

Als Laie ist es meiner Meinung nach eigentlich gar nicht möglich, zu beurteilen, welches Zertifikat ausreichend bzw. notwendig ist.

Die gute Nachricht: Initiativen wie Let's Encrypt haben das geändert. Im Dezember 2015 in die Public Beta gegangen, werden mittlerweile viele Websites über Let's Encrypt gesichert.

Dank Let's Encrypt können sich nun auch kleinere Unternehmen HTTPS leisten, denn das Zertifikat selbst ist kostenlos. Du brauchst also nur ein bisschen Zeit und/oder etwas Hilfe von deinem Hoster und dann kannst auch du die Verbindung zu deiner Website verschlüsseln.

Die Einrichtung eines SSL-Zertifikats

UPDATE: Mittlerweile bieten die meisten großen Hoster kostenlose SSL-Zertifikat an. Diese lassen sich dann direkt über die Benutzeroberfläche des Hosters und für beliebig viele Domains aktivieren. Wenn dein Hoster noch keine kostenlosen SSL-Zertifikate über Let's Encrypt anbietet, dann solltest du dir tatsächlich überlegen, ob du nicht den Hoster wechselst.

Denn so ein Zertifikat kann schnell mal 100,- € im Jahr kosten.

Erste Hoster bieten bereits die Einrichtung eines Let's Encrypt Zertifikats an. Meistens über die Kommandozeile, ein paar Hoster übernehmen auch die Einrichtung, wenn man sich an den Kundensupport richtet.

Zertifikate von Let's Encrypt müssen nach 90 Tagen verlängert werden. Die meisten Hoster machen das automatisch und im Hintergrund. Wenn deine Website allerdings vom einen Tag auf den anderen eine Warnung anzeigt, dass das Zertifikat ungültig ist, dann liegt es vermutlich daran, dass es nicht automatisch verlängert wurde.

Contao für HTTPS einrichten

Im Gegensatz zu vielen anderen CMS ist Contao von Haus aus bereits sehr gut auf die Verwendung von HTTPS vorbereitet, d.h. die Pfade zu Ressourcen wie Bildern, CSS oder JS sind in der Regel relativ und werden automatisch über HTTPS aufgerufen, wenn die Website über HTTPS aufgerufen wird.

Prüfen, ob alle Ressourcen über HTTPS aufgerufen werden

Solltest du eure Website über HTTPS aufrufen und ein Teil der Website wird nicht korrekt geladen/dargestellt, dann liegt das höchstwahrscheinlich daran, dass eine Ressource absolut und über HTTP eingebunden wurde. Aus Sicherheitsgründen ist es bei einer HTTPS-Verbindung nicht möglich, Scripte, Bilder, CSS-Dateien aber auch Webfonts und ähnliches über HTTP zu laden. Im Web-Inspector oder Firebug findest du dann in der Konsole entsprechende Hinweise und kannst die Pfade anpassen.

Gern vergessen werden auch Drittanbieter wie z.B. die Besucherstatistik Matomo, die ebenfalls über einen Server mit TLS-Zertifikat erreichbar sein muss, damit der Aufruf klappt.

Weiterleitung auf HTTPS per .htaccess erzwingen

Damit Suchmaschinen wie Google nun nicht durcheinander kommen und die Website womöglich doppelt indizieren, solltest du Besucher und Suchmaschinen auf die HTTPS-Version weiterleiten.

Hier die Anpassungen, die du in die .htaccess-Datei schreiben solltest:

RewriteCond %{SERVER_PORT} 80
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

Mit diesen beiden Zeilen leitest du alle HTTP-Aufrufe (Port 80) an HTTPS weiter. Je nach Server- und Domaineinstellungen können die Anweisungen anders aussehen (siehe Eintrag im Forum).

Manche Hoster bieten auch die Möglichkeit, in der Benutzeroberfläche eine Weiterleitung zu erzwingen. In diesem Fall kannst du dir die Anpassung oben sparen.

Sitemap mit HTTPS anlegen

Zu guter Letzt solltest du im Startpunkt der Website noch den Haken setzen bei „HTTPS in Sitemaps“. Dadurch machst du es Suchmaschinen noch einfacher, zu erkennen, dass eure Website über HTTPS erreichbar ist und in den Suchergebnissen auch so direkt angezeigt werden sollte.

Fazit

Das Schwierigste ist und bleibt die Einrichtung von SSL/TLS-Zertifikaten. Anbieter wie uberspace machen es Entwicklern zwar schon besonders einfach, aber für Personen, die das Terminal scheuen, bleibt aktuell nur der Anruf beim Kundensupport und die Hoffnung, dass dieser Let's Encrypt unterstützt.

Die Einrichtung von Contao für HTTPS-Verbindungen ist hingegen vergleichsweise einfach.