So verwenden Sie Let’s Encrypt mit Apache auf Ubuntu Server

Die einfache Einrichtung von SSL-Zertifikaten mit Let’s Encrypt unter Linux

Die Konfiguration von SSL-Zertifikaten unter Linux kann oft als kompliziert empfunden werden, was viele davon abhält, HTTPS auf ihren Webseiten zu implementieren. Let’s Encrypt hat sich zum Ziel gesetzt, diesen Prozess zu vereinfachen und die Einrichtung von SSL unter Linux zu einem verständlichen Vorgang für jedermann zu machen. In Verbindung mit Apache auf einem Ubuntu-Server ermöglicht Let’s Encrypt eine unkomplizierte SSL-Zertifikatsverwaltung.

Die Nutzung von Let’s Encrypt ist unter Linux kostenfrei. Es fallen keine Gebühren an. Allerdings haben die Zertifikate eine begrenzte Gültigkeitsdauer von 90 Tagen und müssen daher regelmäßig erneuert werden.

Die Software von Let’s Encrypt unterstützt die beiden meistgenutzten Webserver-Engines unter Linux, nämlich Apache und Nginx. In diesem Leitfaden wird erklärt, wie man ein SSL-Zertifikat von Let’s Encrypt erhält und es für die Nutzung mit Apache auf einem Ubuntu-Server konfiguriert.

Hinweis: Let’s Encrypt ist mit allen Linux-Betriebssystemen kompatibel. Sollten Sie keinen Ubuntu-Server verwenden, finden Sie hier Anleitungen zur Einrichtung auf anderen Serverbetriebssystemen.

Certbot installieren

Die Verwendung von Let’s Encrypt wird durch das Tool Certbot unter Linux weitgehend automatisiert. Mit Certbot kann man rasch eine SSL-Zertifizierung auf seinem Ubuntu-Server erhalten.

Certbot ist nicht standardmäßig in Ubuntu-Server enthalten. Um es nutzen zu können, muss ein Software-Repository (PPA) eines Drittanbieters aktiviert und Certbot darüber installiert werden. Vor dem Hinzufügen des PPA sollte man jedoch beachten, dass nicht jede Ubuntu-Server-Version standardmäßig PPA-Unterstützung bietet. Für den PPA-Zugriff unter Ubuntu muss das Paket `software-properties-common` installiert sein.

sudo apt install software-properties-common

Nach der Ausführung des Befehls `software-properties-common` kann man mit dem folgenden Befehl das Certbot-Repository unter Ubuntu aktivieren:

sudo add-apt-repository ppa:certbot/certbot

Nach erfolgreicher Ausführung des `add-apt-repository` Befehls, sollte das PPA betriebsbereit sein. Anschließend müssen die Softwarequellen des Ubuntu-Servers mit dem `update`-Befehl aktualisiert werden, um auf Certbot PPA zugreifen zu können.

sudo apt update

Sind die Softwarequellen auf dem neuesten Stand, kann das Certbot-Paket mit Apt installiert werden:

sudo apt install python-certbot-apache

HTTPS-Datenverkehr aktivieren

Let’s Encrypt ermöglicht es Anwendern, SSL-Zertifikate unter Linux unkompliziert einzurichten, ohne manuelle Eingriffe. Um diesen Dienst zu nutzen, ist es unter anderem erforderlich, den HTTPS-Datenverkehr für Apache 2 auf dem Server freizugeben.

Um den HTTPS-Datenverkehr auf dem Apache-Webserver zu aktivieren, sollte die Ubuntu-Firewall aktiv sein. Anschließend können die folgenden UFW-Befehle verwendet werden, um HTTPS-Verbindungen zuzulassen.

Hinweis: Sollte die Firewall nicht aktiv sein, kann sie mit `sudo ufw enable` gestartet werden.

sudo ufw allow 'Apache Full'

Nach erfolgreicher Ausführung des UFW-Befehls sollte HTTPS aktiviert sein. Der Status der Firewall lässt sich mit `sudo ufw status` überprüfen.

sudo ufw status

SSL-Zertifikat erstellen

Der Ubuntu-Server ist für die Nutzung von SSL vorbereitet und Certbot ist installiert. Nun kann mit dem Certbot-Programm ein neues SSL-Zertifikat für den Apache-Webserver generiert werden.

Um ein neues SSL-Zertifikat mit Certbot zu erzeugen, muss Certbot mit dem Apache-Befehlszeilen-Flag ausgeführt werden. Es ist wichtig zu beachten, dass dieses Zertifikat nur funktioniert, wenn die im Befehl angegebene Domain mit der Konfigurationsdatei Ihrer Webseite in `/etc/apache2/sites-available/` übereinstimmt.

Hinweis: Ersetzen Sie `mywebsite.com` und `www.mywebsite.com` im Certbot-Befehl durch die Domainnamen Ihrer Website.

sudo certbot --apache -d mywebsite.com -d www.mywebsite.com

Unter der Voraussetzung, dass der Certbot-Befehl erfolgreich war, wird eine Textaufforderung angezeigt, die nach Ihren Apache-Einstellungen fragt. Lesen Sie die Eingabeaufforderung sorgfältig durch und wählen Sie die Option, die Ihren Bedürfnissen entspricht. Sobald die Eingabeaufforderung abgeschlossen ist, ist Ihr SSL-Zertifikat einsatzbereit!

SSL-Zertifikat verlängern

Die SSL-Zertifikate von Let’s Encrypt sind 90 Tage gültig und müssen daher erneuert werden, wenn sie auf einer Webseite eingesetzt werden sollen. Glücklicherweise verfügt Certbot über einen automatischen Cron-Job, der diesen Prozess für Sie übernimmt.

Das Cron-Skript für die automatische Verlängerung befindet sich unter `/etc/cron.d/` auf Ihrem Server. Sie können es einsehen, indem Sie den Inhalt der Datei anzeigen.

Manuelle Erneuerung

Dank des automatischen Verlängerungsskripts von Let’s Encrypt sollte Ihr Apache-Server immer mit einem gültigen SSL-Zertifikat ausgestattet sein. Jedoch können gelegentlich Probleme auftreten, daher ist es von Vorteil, die manuelle Verlängerung des SSL-Zertifikats zu kennen.

Zur manuellen Verlängerung des SSL-Zertifikats mit Apache auf dem Ubuntu-Server wird eine Terminal-Sitzung via SSH benötigt. Führen Sie dann die folgenden Schritte aus:

Schritt 1: Führen Sie den Befehl `certbot renew` mit dem Schalter `dry-run` aus. Dies ermöglicht eine Test-Erneuerung, um Probleme zu identifizieren und sicherzustellen, dass der Prozess korrekt funktioniert.

sudo certbot renew --dry-run

Schritt 2: Sofern der „Trockenlauf“ erfolgreich verlaufen ist, kann der Erneuerungsbefehl von Certbot ohne den `dry-run` Schalter ausgeführt werden.

sudo certbot renew

Ist der `renew`-Befehl erfolgreich, ist Ihr SSL-Zertifikat wieder aktiv.