ubuntuusers.de

certbot

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:


Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

./certbot-logo.png certbot 🇬🇧 ist ein Python-Skript, welches zur Erstellung und Verwaltung von Let's Encrypt-Zertifikaten dient. Damit wird die Verwendung von SSL-Zertifikaten wesentlich vereinfacht gegenüber herkömmlichen Verfahren wie getssl.

Voraussetzungen

Dieser Artikel beschreibt, wie man für einen fertig eingerichteten Nginx- oder Apache-Webserver Let's-Encrypt-Zertifikate mit Hilfe von certbot einrichtet.

  • Der Webserver muss so eingerichtet sein, dass er auch auf Port 443 (SSL) lauscht, ggf. muss die Firewall bearbeitet werden, sodass auch der Port 443 erreicht werden kann.

  • Eine registrierte Domain oder Subdomain z.B. example.org, test.example.org, etc, die auf den Webserver verweist und über die der Webserver erreichbar ist.

  • Es müssen Root-Rechte [4] z.B. per sudo vorliegen.

Es gibt auch eine Möglichkeit, certbot als snap zu installieren, dies wird hier nicht beschrieben.

Installation

certbot kann direkt aus den Paketquellen installiert werden:

  • certbot (universe)

Befehl zum Installieren der Pakete:

sudo apt-get install certbot 

Oder mit apturl installieren, Link: apt://certbot

Zusätzlich braucht man noch - je nach Server - das Paket python3-certbot-nginx bzw python3-certbot-apache:

  • python3-certbot-nginx (universe)

Befehl zum Installieren der Pakete:

sudo apt-get install python3-certbot-nginx 

Oder mit apturl installieren, Link: apt://python3-certbot-nginx

  • python3-certbot-apache (universe)

Befehl zum Installieren der Pakete:

sudo apt-get install python3-certbot-apache 

Oder mit apturl installieren, Link: apt://python3-certbot-apache

Für Anleitungen zur Installation und Nutzung weiterer Plugins siehe die Sektion.

Aufruf und Optionen

certbot muss mit Root-Rechten aufgerufen werden

sudo certbot [BEFEHL] [OPTIONEN] [-d DOMAIN] [-d DOMAIN] ... 

und kennt unter anderem folgende Optionen und Befehle:

Option/Befehl Beschreibung
run erstellen, holen und einrichten eines Zertifikates auf dem Server, Default-Einstellung
certonly erstellen und holen eines Zertifikates ohne einrichten auf dem Server
-d Domain oder Subdomain für die ein Zertifikat eingerichtet werden soll
--dry-run Probelauf ohne Speicherung der Ergebnisse
--nginx Der Zielserver läuft unter Nginx (Nginx-Plugin)
--apache Der Zielserver läuft unter Apache (Apache-Plugin)
--rsa-key-size 3072 Schlüssellänge einstellen (2048, 3072, 4096), 2048 Bits sind ab 2024 laut BSI obsolet, 4096 verlängert die Antwortzeit der Seite
--elliptic-curve secp384r1 Man kann statt RSA-Verschlüsselung auch elliptische Kurven verwenden (secp384r1 und secp521r1, nicht: 512!)
certificates einholen von Informationen über gespeicherte Zertifikate
renew erneuern eines Zertifikates *)
revoke ein Zertifikat widerrufen
delete ein Zertifikat vom Webserver löschen
register einen Account bei der Zertifizierungsstelle einrichten (muss einmalig vor der Einrichtung gemacht werden, danach ist dies auf diesem Server nicht mehr notwendig)
unregister einen Account löschen
update_account einen Account überarbeiten

*) Hat certbot einmal ein Zertifikat für eine oder mehrere Domain/s installiert, dann sorgt es auch für die automatische Verlängerung dieser Zertifikate, der Nutzer braucht sich nicht darum zu kümmern.

Die Plugins haben jeweils eigene Optionen. Für eine vollständige Übersicht siehe die Kommandozeilen-Referenz 🇬🇧.

Plugins

Nach dem Generieren von Zertifikaten ist die Integration derselben in die Konfiguration der existierenden Server-Software vonnöten. Dazu ist Certbot mittels Erweiterungen bzw. Plugins in der Lage. Solche für die populären Webserver Apache und Nginx neben solchen, die keine bestimmte Server-Software voraussetzen und einer Vielzahl von DNS-Plugins werden von Certbot nativ (nach Installation entsprechender Pakete) unterstützt und sind durch entsprechende Kommandozeilen-Optionen anwählbar. Weitere Plugins für andere Server-Software werden von dritter Seite angeboten 🇬🇧 und müssen zusätzlich zum eigentlichen Certbot-Skript installiert werden. Weitere Informationen finden sich in der Projektdokumentation 🇬🇧.

Beispiele

Anmelden bei der Zertifizierungsstelle und einrichten eines Accounts:

sudo certbot register 

Erstellen, holen und speichern eines Zertifikates für den lokalen Webserver (eine oder mehrere Domains):

sudo certbot --nginx -d example.org
sudo certbot --nginx -d example.org -d www.example.org -d test.example.org 

Dies erstellt die Zertifikate, korrespondierende private Schlüssel und legt diese jeweils in Verzeichnissen unter /etc/letsencrypt/live/ ab, die dem Namen der Domain entsprechen. Siehe auch den Abschnitt 🇬🇧 in der Projektdokumentation.

Der folgende Befehl liefert über den Webroot-Plugin ein Zertifikat für die Domain example.com, deren Dateien in dem Verzeichnis /var/www/example liegen und vom laufenden Webserver ausgeliefert werden (inklusive versteckter Dateien):

certbot certonly --webroot -w /var/www/example -d example.com 

Dies hat den Vorteil, dass der Webserver während der Ausstellung des Zertifikates nicht angehalten werden muss. Mehr zur Funktionsweise des Webroot-Plugins findet sich hier 🇬🇧.

Diese Revision wurde am 8. Juni 2024 16:34 von karzer erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Sicherheit, Internet, Netzwerk, Server, System, Let's-Encrypt, DNS, TLS, SSL, letsencrypt