Mein 1&1 cloud server, Teil 3, Apache und Let’s Encrypt

Im dritten Teil meiner Artikelserie wollen wir uns mit dem Webserver Apache und Let’s Encrypt beschäftigen.

Der Apache HTTP Server ist ein quelloffenes und freies Produkt der Apache Software Foundation und der meistbenutzte Webserver im Internet. Let’s Encrypt ist eine freie, automatische und offene Zertifizierungsstelle (CA) für Webseitenzertifikate, betrieben durch die Internet Security Research Group (ISRG). Mit diesen beiden Komponenten wollen wir eine Webpage aufsetzen, die ihre Inhalte verschlüsselt mit Hilfe des HyperText Transfer Protocol Secure (HTTPS) ausliefert.

Wenden wir uns zunächst dem HTTP Server Apache zu.

Wie das Paketlisting zeigt, ist der Apache in der Version 2.4.7 bereits installiert. Deshalb überprüfen wir, ob der Apache auch schon läuft.

Ja, der HTTP Server läuft bereits. Nun öffnen wir eine Webbrowser und geben unsere Domain in die Adresszeile ein. Tatsächlich der Server läuft bereits und gibt die Apache2 Ubuntu Default Page aus.

Default Page
Apache2 Ubuntu Default Page

Die Seite enthält nützliche Informationen über das Konfigurationslayout und die Verwaltung des Webservers.

Zunächst werfen wir einen Blick in das Konfigurationsverzeichnis:

Die Verzeichnisse conf-, mods- bzw. sites-available enthalten die vorhandenen Konfigurationen, Module bzw. Webseiten. Das Aktivieren und Deaktivieren von Konfigurationen, Modulen und Webseiten erfolgt mit den Kommandos a2enconf, a2disconf, a2enmod, a2dismod, a2ensite und a2dissite. Durch das Aktivieren werden logical links in den *-enabled Verzeichnissen angelegt, die auf die entsprechenden Einträge in den *-available Verzeichnissen verweisen. Beim Deaktivieren werden diese logical links wieder gelöscht.

Nun schauen wir uns das Verzeichnis sites-enabled an:

Dies ist die Konfiguration für die Apache2 Ubuntu Default Page.

Im Verzeichnis sites-available finden wir zusätzlich eine Konfiguration für eine default HTTPS Seite:

Wir bearbeiten beide Dateien und ersetzen die E-Mail-Adresse des ServerAdmin in der Zeile ServerAdmin webmaster@example.com mit unserer Webmaster E-Mail-Adresse.

Anschließend müssen wir noch dafür sorgen, dass der Apache die Änderungen der Konfiguration übernimmt. Dies erreichen wir mit dem folgenden Befehl:

Okay, nun wollen wir uns zunächst Let’s Encrypt zuwenden. Um die gewünschten Zertifikate zu erhalten und zu verwalten müssen wir den Let’s Encrypt Client installieren, siehe auch die Client Dokumentation auf der Let’s Encrypt Webpage. Zur Zeit gibt es kein Ubuntu 14.04 package für den Let’s Encrypt client, weshalb wir ihn manuell aus dem github repository installieren müssen. Um die Auflösung der Abhängigkeiten müssen wir uns nicht kümmern, da es mit dem letsencrypt-auto wrapper script eine Lösung gibt, die das für uns erledigt. Dieses wrapper script löst einige Abhängigkeiten auf und packt andere, die nicht als Ubuntu 14.04 packete vorhanden sind in ein python virtual environment. Da ich allerdings für zukünftige Projekte ebenfalls das python-virtualenv Paket brauche installieren wir es hier zunächst. Dabei werden eine ganze Reihe weiterer Pakete installiert.

Anschließend installieren wir noch git:

Nun klonen wir den Let’s Encrypt client aus dem Repository:

Nachdem wir das Repository geklont haben wechseln wir in das neu angelegt letsencrypt Verzeichnis und rufen das letsencrypt wrapper script zunächst mit dem Argument –help auf. Das wrapper script wird dabei die übrigen Abhängigkeiten auflösen ein python virtual environment erzeugen und uns zum Schluss die Hilfe zum script anteigen.

Nun können wir bereits ein Zertifikat beantragen:

Dabei sind mysubdomain, mydomain und tld entsprechend unserer gewählten Domäne zu ersetzen. Das Script startet eine einfache ncurses GUI, zunächst müssen wir für die Erstellung eines Accounts bei Let’S Encrypt unsere E-Mail-Adresse eingeben:

Let's Encrypt E-Mail Form
Let’s Encrypt E-Mail Form

Nachdem wir ein E-Mail-Adresse eingegeben und die Return-Taste gedrückt haben, kommen wir zur nächsten Seite.

Hier müssen wir durch drücken der Return-Taste bestätigen, dass wir mit den Bedingungen einverstanden sind. Danach sehen wir die folgende Seite:

HTTPS required or optional
Let’s Encrypt HTTPS required or optional

Wir übernehmen hier die default Einstellung Easy und drücken die Return-Taste. Damit ist die Erstellung der Zertifikate und die erste Konfiguration beendet.

Let's Encrypt Success
Let’s Encrypt Success

Später werden wir uns noch dem Hinweis zum Testen unserer Konfiguration auf der Qualys SSL Labs Seite zuwenden.

Das letsencrypt wrapper script gibt uns zum Abschluss noch ein paar Hinweise:

Den Hinweis zum Backup nehmen wir ernst und nehmen das Let’s Encrypt Konfigurationsverzeichniss in unsere Backupkonfiguration mit auf und führen ein Backup durch.

Jetzt wollen wir noch eine permanente Weiterleitung unserer HTTP Seite auf die HTTPS Seite einrichten. Hierzu brauchen wir das Apache Module Rewrite. Die folgenden Befehle zeigen, dass das Modul zur Verfügung steht aber nicht aktiviert ist.

Wir aktivieren das Rewrite Modul mit dem folgenden Kommando:

Bevor wir den Apache restarten tragen wir in unserer Konfiguration für die Default HTTP Seite die Weiterleitung ein. Dazu tragen wir in der Datei /etc/apache2/sites-available/000-default.conf hinter der Zeile

die folgenden Zeilen ein:

Nun müssen wir den Apache noch restarten:

Nun starten wir unseren Webbrowser, ich benutze Mozilla Firefox, und geben unsere URL mit http:// prefix in die Adresszeile ein. Die folgende Abbildung zeigt uns unsere Default Seite im Browser.

Teile dieser Seite sind nicht sicher
Teile dieser Seite sind nicht sicher

In der Adresszeile sehen wir zwei Dinge. Erstens, statt http:// prefix steht dort jetzt https://, d.h. die Umleitung funktioniert. Zweitens, Vor der URL wird nun ein Schlosssymbol angezeigt allerdings mit einem gelben Warndreieck. Wenn wir darauf klicken, erhalten wir die folgende Erläuterung:

Details
Teile dieser Seite sind nicht sicher, Details

Wenn wir uns die html Datei /var/www/html/index.html für die Seite anschauen, sehen wir dass der Verursacher tatsächlich eine Grafik ist. In der fünftletzten Zeile der Datei werden das Icon und der zugehörige Link des XHTML 1.0 Validators gesetzt:

Wir ändern diese Zeile und tragen für Link und Icon jeweils die https URL ein:

Wenn wir nun unsere Webpage im Browser neu laden sehen wir, dass in der Adresszeile vor der URL nun ein grünes Schlosssymbol abgebildet ist.

Sichere Seite
Sichere Seite

Wenn wir auf das grüne Schlosssymbol klicken erhalten wir die folgende Information:

Sichere Seite, Details
Sichere Seite, Details

Wenn wir dort auf das > Symbol klicken, wird uns der folgende Dialog angezeigt:

Verifiziert von Let's Encrypt
Verifiziert von Let’s Encrypt

Unser Zertifikat ist, wie nicht anders zu erwarten, von Let’s Encrypt verifiziert. Klicken auf den Button Weitere Infomationen startet schliesslich den folgenden Dialog:

Seiteninformationen
Seiteninformationen

Hier können wir uns nun auch Details des Zertifikats ansehen:

Details Zertifikat
Details Zertifikat

Auf dem Details Tab sind noch weitere Details zu sehen, die wir uns hier jetzt nicht anschauen.

Zum Abschluss wollen wir noch das Apache Konfigurationverzeichniss in unser Backup mitaufnehmen. Wir ergänzen das  Konfigurationverzeichnis in der Backup Selection List und starten ein Backup:

Im 4. Teil der Artikelserie wollen wir uns noch ein wenig mit den Sicherheitseinstellungen unseres Apache servers und der Konfiguration des Let’s Encrypt Clients beschäftigen und eine automatische Erneuerung unserer Zertifikate einrichten.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.