1&1 cloud server unter Ubuntu 16.04.1 LTS, Teil 4, Apache und Let’s Encrypt

Im vierten 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.

Apache

Wenden wir uns zunächst dem HTTP Server Apache zu. Mit dem folgenden Kommando überprüfen wir welche Apache Version installiert ist.

Wir erhalten folgende Ausgabe:

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.

Das Kommando  systemctl status apache2  zeigt uns folgende Ausgabe:

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.

Ubuntu 16.04, Apache Default Page
Ubuntu 16.04, Apache Default Page

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

Danach werfen wir mit dem Kommando  ls -l /etc/apache2/  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:

Let’s Encrypt

Okay, nun wollen wir uns zunächst Let’s Encrypt zuwenden. Um die gewünschten Zertifikate zu erhalten und zu verwalten müssen wir einen Let’s Encrypt Client installieren. Der empfohlene Let’s Encrypt Client ist Certbot, siehe auch die Let’s Encrypt Getting Started Seite.

Für unsere Kombination HTTP-Server Apache unter Ubuntu 16.04 gibt es ein fertiges Software Paket, siehe die entsprechende Certbot Seite. Die vollständige Dokumentation für den Certbot finden wir hier.

Zunächst installieren wir das Certbot Paket und das Certbot Dokumentationspaket:

Hier die Konsolenausgabe der Installation:

Nun können wir bereits ein Zertifikat beantragen:

Dabei sind mysubdomain, mydomain und tld entsprechend unserer gewählten Domäne zu ersetzen. Die Kommandozeilen Option –apache wählt das Apache-plugin und –rsa-key-size setzt die Schlüsselgröße, default ist 2048. Die Option –hsts konfiguriert Strict-Transport-Security Header, die den Browser anweisen immer das HTTPS Protokoll für diese Domäne zu benutzen. Die Option –uir schliesslich erzeugt „Content-Security-Policy: upgrade-insecure-requests“ Header die den Browser anweisen für alle Inhalte der Domän das HTTPS Protokoll zu verwenden.

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.

Service Agreement
Service Agreement

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:

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

Wir wählen hier die Einstellung Secure 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.

Die händige Einrichtung einer permanenten Weiterleitung der HTTP Seite auf die HTTPS Seite, wie im 3. Teil der alten Artikelserie beschrieben, können wir uns sparen. Durch Auswahl der Secure Option im Certbot Client bei der Einrichtung des Let’s Encrypt Zertifikats, hat der Certbot Client dies für uns übernommen.

Funktionscheck

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.

Sichere Seite
Sichere Seite

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 ein grünes Schlosssymbol abgebildet. 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:

sichereseite-03

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

sichereseite-04

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

sichereseite-05

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 5. 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.

2 Gedanken zu „1&1 cloud server unter Ubuntu 16.04.1 LTS, Teil 4, Apache und Let’s Encrypt“

  1. Hallo Hr Emrich.
    bin in der selben Situation und verfolge ihren sehr gut beschriebenen Block, und hoffe, das ich nicht mehr allzulange auf die Fortsetzung warten muss. 🙂 nur weiter so .
    mfg

    1. Danke für die Blumen. Es hat ein wenig gedauert, man muss ja manchmal auch arbeiten ;-), aber jetzt ist der nächste relativ umfangreiche 5. Tail der Serie online.

Schreibe einen Kommentar

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