Vorraussetzung

Um dieses Tutorial folgen zu können, benötigen Sie einen Debian 11 Server mit einen nicht Root-User welcher „sudo“ Rechte Besitzt, einer einfachen Firewall und einen installierten Apache2 Server. Dies kann mithilfe des Tutorial Erste Server-Einrichtung mit Debian 11 und Wie man Linux, Apache, MariaDB, PHP (LAMP) unter Debian 11 installiert konfiguriert werden.

Durchführung

Schritt 1 – Sicherstellung auf Aktualität des Systems

Vor der Installation der benötigten Pakete rate ich Ihnen ihre System Paketlisten zu aktualisieren. Um diesen Befehl auszuführen müssen Sie vor dem Befehl sudo schreiben. Beim erstmaligen ausführen des Befehls werden Sie nach Ihrem Passwort gefragt, da Sie nun mit Root-Rechten arbeiten.

Um die aktuellen Pakete abzurufen, geben Sie folgenden Befehl ein:

sudo apt update

Nun kann Ihr System Ihnen sagen, dass es Updates für bereits installierte Pakete existiert. Falls dies so ist, können Sie folgenden Befehl eingeben.

sudo apt upgrade -y

Schritt 2 – Installation von Certbot und der Benötigten Paketen

Nun können Sie Certbot sowie die benötigten Pakete von Python installieren.

apt install certbot python3-certbot-apache -y

Schritt 3 – Beantragung eines SSL-Zertifikates

Es gibt verschiedene Möglichkeiten, um ein SSL-Zertifikat zu beantragen und die Inhaberschaft der Domains zu bestätigen. Wenn Sie einen Apache2 Webserver verwenden, können Sie die Zertifikate nach der Erstellung auf Wunsch automatisch in die Apache2-Konfiguration einbinden lassen. Hierbei wird der Apache2 Server auch für die Verifizierung der Domain-Inhaberschaft verwendet.

Des weiteren gibt es noch die Standalone Methode, wo vom Certbot für die Dauer der Verifizierung einen eigener Webserver bereitgestellt wird. Bei dieser Methode müssen Sie die Zertifikatsdateien am Ende selbst einbinden.

Variante 1 – Automatisches Beantragen und Konfigurieren (Empfohlen)

Schritt 1 – SSL-Zertifikat beantragen

Führen Sie folgenden Befehl aus. Sie können die Web-Verzeichnisse und Domain direkt mit den Parametern -w (Webverzeichnis) und -d (Domain) angeben. Ohne diese Parameter werden Sie interaktiv nach den Domains und den zugehörigen Verzeichnissen gefragt.

certbot --authenticator webroot --installer apache

Beispiel: Für die Domain deinedomain.de und die Subdomain www.deinedomain.de mit dem Webverzeichnis /var/www/html/deinedomain.de lautet der vollständige Befehl wie folgt.

certbot --authenticator webroot --installer apache -w /var/www/html/deinedomain.de -d deinedomain.de -d www.deinedomain.de
Schritt 2 – Erstmalige Nutzung von Certbot

Wenn Sie den Certbot Befehl zum ersten Mal ausführen, müssen Sie sich bei Let’s Encrypt registrieren. Geben Sie hierzu Ihre E-Mail Adresse an und bestätigen die Eingabe mit Enter. Anschließend müssen Sie die Lizenzbedingungen mit Y und Enter akzeptieren. Optimal können Sie sich entscheiden den Newsletter der Electronic Frontier Foundation abonnieren. Falls Sie dies wollen, geben Sie Y für ja ein, anderenfalls geben Sie N für nein ein.

Schritt 3 – Interaktive Eingabe bei fehlenden Parametern

Falls sie keine Domains angegeben haben, sucht Certbot automatisch nach Domains und zeigt diese nummeriert an. Wählen Sie die gewünschten Domains aus, indem Sie die Nummern (durch Kommas getrennt) eingeben. Anschließend geben Sie die zugehörigen Webverzeichnisse für die Domain-Verifizierung an. Bei mehreren Domain können Sie dasselbe Verzeichnis verwenden oder ein anderes angeben.

Hinweis: Bei mehreren Domains wird ein einziges Zertifikat für alle angegebenen Domains erstellt. Der Dateiname entspricht der zuerst ausgewählten Domain.

Schritt 4 – HTTP zu HTTPS Weiterleitung

Entscheiden Sie, ob HTTP-Anfragen automatisch zu HTTPS umgeleitet werden sollen.
– 1: Umleitung nicht aktivieren. Hier wird weiterhin die Verbindung mit HTTP erlaubt.
– 2: Umleitung aktivieren. Hier wird die Umleitung von HTTP zu HTTPS verwendet um ihre Webseite nur noch über HTTPS erreichbar zu machen.

Schritt 5 – Erfolgskontrolle

Das Zertifikat wird automatisch ausgestellt und in der Apache-Konfiguration eingebunden. Alle Zertifikatsdateien finden Sie unter /etc/letsencrypt/live/<domain>.

Variante 2 – Nur Zertifikatsdateien beantragen (ohne automatische Webserver-Konfiguration)

Schritt 1 – SSL-Zertifikat beantragen

Führen Sie folgenden Befehl aus. Sie können die Domains direkt mit den Parametern -d (Domain) angeben. Ohne diesen Parameter werden Sie interaktiv nach den Domains gefragt.

certbot --authenticator standalone

Beispiel: Für die Domain deinedomain.de und die Subdomain www.deinedomain.de lautet der vollständige Befehl wie folgt.

certbot certonly --authenticator standalone -d deinedomain.de -d www.deinedomain.de --pre-hook "systemctl stop apache2" --post-hook "systemctl start apache2"
Schritt 2 – Erstmalige Nutzung von Certbot

Wenn Sie den Certbot Befehl zum ersten Mal ausführen, müssen Sie sich bei Let’s Encrypt registrieren. Geben Sie hierzu Ihre E-Mail Adresse an und bestätigen die Eingabe mit Enter. Anschließend müssen Sie die Lizenzbedingungen mit Y und Enter akzeptieren. Optimal können Sie sich entscheiden den Newsletter der Electronic Frontier Foundation abonnieren. Falls Sie dies wollen, geben Sie Y für ja ein, anderenfalls geben Sie N für nein ein.

Schritt 3 – Interaktive Eingabe bei fehlenden Parametern

Falls sie keine Domains angegeben haben, sucht Certbot automatisch nach Domains und zeigt diese nummeriert an. Wählen Sie die gewünschten Domains aus, indem Sie die Nummern (durch Kommas getrennt) eingeben. Anschließend geben Sie die zugehörigen Webverzeichnisse für die Domain-Verifizierung an. Bei mehreren Domain können Sie dasselbe Verzeichnis verwenden oder ein anderes angeben.

Hinweis: Bei mehreren Domains wird ein einziges Zertifikat für alle angegebenen Domains erstellt. Der Dateiname entspricht der zuerst ausgewählten Domain.

Schritt 4 – Speicherort der Zertifikatsdateien

Alle Zertifikatsdateien werden im Verzeichniss /etc/letsencrypt/live/<domain> gespeichert.

Schritt 4 – Erneuerung der Zertifikate

Die SSL-Zertifikate von Let’s Encrypt sind nur 90 Tage gültig und müssen regelmäßig erneuert werden. Nutzen Sie dafür den folgenden Befehl:

certbot renew

Alternativ hierzu können Sie auch ein Cronjob erstellen, welcher dies für Sie automatisch erledigt. Hierzu können Sie auch täglich ein Cronjob mit diesen Befehl ausführen.

0 0 * * * /usr/bin/certbot renew -q