Tutorial: Apache & Let’s Encrypt für SSL-Schutz

Let’s Encrypt ist eine gemeinnützige Organisation, die kostenlose SSL-Zertifikate ausstellt. Mittlerweile nutzt eine große Anzahl an Websites die kostenlosen Zertifikate von Let’s Encrypt.

Dieser Artikel beschreibt die Installation von Let’s Encrypt auf dem eigenem Apache-Webserver mit Ubuntu 18.04 LTS (Bionic Beaver). Bei anderen Ubuntu- oder Debian-Versionen funktioniert die Installation ähnlich.

Empfehlung – Domains per Virtual Host anlegen

SSL-Zertifikate von Let’s Encrypt können ausschließlich für Domains und Subdomains vergeben werden. Die IP-Adresse eures eigenen Servers mittels SSL-Zertifikat von Let’s Encrypt zu schützen ist nicht möglich.

Damit das Beziehen des SSL-Zertifikats ideal funktioniert, empfiehlt es sich die genutzten Domains in der Apache-Config zu definieren. Dies ist insbesondere notwendig, wenn ihr verschiedene Domains oder Subdomains mit eurem Webserver betreiben möchtet. Details dazu findet ihr in diesem Artikel: Tutorial: Apache Domains & Virtual Hosts anlegen.

Die notwendigen Befehle für das anlegen einer neuen Domain für Apache sehen wie folgt aus:

Express-Setup – Alle Befehle im Überblick

Nachfolgend alle Befehle im Überblick um per Let’s Encrypt SSL-Zertifikate kostenlos zu beziehen. Dabei wird ein Apache-Webserver verwendet.

Schritt 1 – Let’s Encrypt Certbot installieren

Certbot ist ein kleine Programm, um SSL-Zertifikate zu beziehen. Ebenso kümmert es sich um die rechtzeitige Verlängerung der Zertifikate. Ihr könnt dieses wie folgt installieren:

Schritt 2 – SSL-Zertifikate für Domains beziehen

Anschließend könnt ihr für eure Domain wie folgt SSL-Zertifikate beziehen. Wichtig ist, dass der Nameserver-Eintrag eurer Domain auf die IP des Servers bereits verweist.

Dieser Befehl bezieht zwei Zertifikate für die Domains eure-domain.de und www.eure-domain.de.

Sofern ihr die Domains per Virtual Host korrekt angelegt habt, sollte der Befehl ohne Probleme durchlaufen. Falls ihr keine Virtual Hosts mit entsprechendem Servernamen erstellt habt, bekommt ihr unter Umständen folgende Frage:

Dies liegt daran, dass für Let’s Encrypt nicht klar ist, wohin www.eure-domain.de verweisen soll. Bei diesem Dialog müsst ihr 2: 000-default-le-ssl.conf auswählen, damit das Zertifikat korrekt installiert wird.

Schritt 3 – https-Traffic erlauben und SSL-Schutz testen

Sofern ihr die Firewall UFW verwendet, müsst ihr den https-Traffic zu eurem Server noch erlauben:

Anschließend könnt ihr https://eure-domain.de und https://www.eure-domain.de aufrufen und ihr solltet ein gültiges SSL-Zertifikat sehen.

Schritt 4 – Zertifikatsverlängerung

Die SSL-Zertifikate von Let’s Encrypt sind nur 90 Tage gültig. Die certbot-Anwendung hat allerdings einen cronjob unter /etc/cron.d angelegt, welches zwei mal am Tag die verbleibende Gültigkeit eurer Zertifikate überprüft. 30 Tage vor Ablauf der Gültigkeit wird automatisch ein neues SSL-Zertifikat bezogen.

Um die Zertifikatsverlängerung zu testen, könnt ihr folgenden Befehl ausführen: