Beantragung eines Let’s Encrypt-Zertifikats mit Certbot (Apache, Nginx)

SSL 3 Min. Lesezeit

Wenn Sie Ihre Website auf einem eigenen VPS oder einem dedizierten Server betreiben, können Sie das kostenlose Let’s Encrypt-Zertifikat mit dem Programm Certbot beantragen. Certbot führt die Domain-Validierung durch, konfiguriert das Zertifikat auf dem Webserver und sorgt für die automatische Verlängerung. Bei cPanel-Hosting-Paketen ist dies nicht erforderlich, da dort AutoSSL dieselben Aufgaben übernimmt.

Voraussetzungen

  • Der A-Eintrag der Domain (und die Subdomain „www“) verweist auf die IP-Adresse des Servers.
  • Auf der Firewall des Servers sind die Ports 80 und 443 geöffnet. Let’s Encrypt überprüft die Domain über Port 80, siehe: Wie richte ich eine Firewall auf meinem VPS ein?
  • Die Domain ist auf dem Webserver (Apache oder Nginx) bereits eingerichtet und über HTTP erreichbar.
  • root- oder sudo-Rechte.

Installation von Certbot

AlmaLinux, Rocky Linux, CloudLinux (8, 9, 10):

dnf install epel-release
dnf install certbot python3-certbot-apache   # Apache esetén
dnf install certbot python3-certbot-nginx    # Nginx esetén

Debian, Ubuntu:

apt update
apt install certbot python3-certbot-apache   # Apache esetén
apt install certbot python3-certbot-nginx    # Nginx esetén

Beantragung des Zertifikats

Nginx:

certbot --nginx -d pelda.hu -d www.pelda.hu

Apache:

certbot --apache -d pelda.hu -d www.pelda.hu

Beim ersten Start fragt Certbot nach Ihrer E-Mail-Adresse (an diese werden Benachrichtigungen gesendet, wenn im Zusammenhang mit Ihrem Konto Maßnahmen erforderlich sind) und um die Zustimmung zu den Nutzungsbedingungen. Anschließend führt es die Validierung durch, lässt das Zertifikat ausstellen und trägt es in die Einstellungen des Webservers ein. Schließlich bietet es auch die Umleitung von HTTP-Anfragen auf HTTPS an.

Wenn Sie bei der Konfiguration des Webservers keine Änderungen vornehmen möchten

Mit dem Befehl „certonly“ fordert Certbot lediglich das Zertifikat an; die Konfiguration des Webservers bleibt Ihnen überlassen. Im Modus „--webroot“ wird die Validierungsdatei im Stammverzeichnis der Website abgelegt:

certbot certonly --webroot -w /var/www/pelda.hu -d pelda.hu -d www.pelda.hu

Die Zertifikatsdateien werden im Verzeichnis „/etc/letsencrypt/live/pelda.hu/“ abgelegt:

Datei Inhalt Wohin soll es gehen?
fullchain.pem Das Zertifikat und das Zwischenzertifikat Nginx: „ssl_certificate“, Apache: „SSLCertificateFile“
privkey.pem Der private Schlüssel Nginx: ssl_certificate_key, Apache: SSLCertificateKeyFile
cert.pem nur das Zertifikat Verwenden Sie es nicht eigenständig, da das Zwischenzertifikat fehlt.

Warum „fullchain.pem“ die richtige Wahl ist, wird im Artikel über das Zwischenzertifikat erläutert.

Automatische Verlängerung

Das aus dem Paket installierte Certbot enthält auch einen Timer (systemd-Timer), der zweimal täglich überprüft, ob ein Zertifikat erneuert werden muss. Unter Debian und Ubuntu wird dieser automatisch gestartet, unter AlmaLinux, Rocky Linux und CloudLinux muss er jedoch aktiviert werden:

systemctl enable --now certbot-renew.timer

Bitte überprüfen Sie, ob der Timer läuft:

systemctl list-timers | grep certbot

Sie können die Verlängerung versuchsweise wie folgt testen, ohne dass ein gültiges Zertifikat ausgestellt wird:

certbot renew --dry-run

Sollte der Webserver nach der Verlängerung neu geladen werden müssen (im certonly-Modus), geben Sie bei der Verlängerung folgenden Befehl ein:

certbot renew --deploy-hook "systemctl reload nginx"

Die Zertifikate von Let’s Encrypt sind derzeit 90 Tage lang gültig; ab Februar 2027 betragen die Gültigkeitsdauer 64 Tage, ab Februar 2028 45 Tage (siehe: Warum sind SSL-Zertifikate nicht mehr ein Jahr lang gültig?). Die standardmäßige Erneuerungslogik von Certbot ist darauf abgestimmt. Wenn Sie die Zertifikate jedoch in einem eigenen Skript in festen Zeitabständen (beispielsweise alle 60 Tage) erneuern, passen Sie die Einstellung bitte an: Die Zertifikate mit kürzerer Gültigkeitsdauer wären bis dahin bereits abgelaufen. Halten Sie Certbot auf dem neuesten Stand.

Informationen zu den manuellen Schritten bei der Verlängerung und zur Fehlerbehebung finden Sie im Artikel „Manuelle Verlängerung des Let’s Encrypt-Zertifikats über die Befehlszeile“.

Nützliche Befehle

# A szerveren lévő tanúsítványok és lejáratuk
certbot certificates

# Egy domain hozzáadása egy meglévő tanúsítványhoz
certbot --nginx --cert-name pelda.hu -d pelda.hu -d www.pelda.hu -d bolt.pelda.hu

# Egy tanúsítvány törlése
certbot delete --cert-name pelda.hu

Kostenpflichtiges Zertifikat mit ACME

Certbot funktioniert nicht nur mit Let’s Encrypt. Wenn Sie im Kundenbereich ein kostenpflichtiges Zertifikat mit ACME-Abonnement erworben haben, finden Sie auf der Seite des Dienstes die Werte für „Server-URL“, „EAB-MAC-ID“ und „EAB-MAC-Schlüssel“. Mit diesen Angaben beantragt und erneuert Certbot das kostenpflichtige Zertifikat ebenfalls automatisch:

certbot --nginx --server <Server URL> \
  --eab-kid <EAB MAC ID> --eab-hmac-key <EAB MAC key> \
  -d pelda.hu -d www.pelda.hu

Über die Beantragung eines Wildcard-Zertifikats von Let’s Encrypt mittels DNS-Validierung informieren wir Sie in einem separaten Artikel.

Zurück: SSL-Artikel (35)