## Bitte hier die Versionen kommagetrennt eintragen, mit denen getestet wurde. [[Vorlage(Getestet, jammy focal)]] ## Bitte hier alle wesentlichen Wikiartikel auflisten, deren Kenntnis vorausgesetzt wird. {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Programme_starten: Starten von Programmen] [:Terminal: Ein Terminal öffnen] [:mit Root-Rechten arbeiten:] }}} [[Inhaltsverzeichnis()]] [[Bild(./certbot-logo.png, 90, align=left)]] [https://certbot.eff.org/ certbot] {en} ist ein Script, welches zur Erstellung und Verwaltung von [wikipedia:Let's-Encrypt:]-Zertifikaten dient. Damit wird die Verwendung von SSL-Zertifikaten wesentlich vereinfacht gegenüber herkömmlichen Verfahren wie [:Howto/getssl:getssl]. = Voraussetzungen = Dieser Artikel beschreibt, wie man bei einen fertig eingerichteten Webserver Apache oder Nginx 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 [:Personal_Firewalls: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 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 {{{#!vorlage Paketinstallation certbot, universe }}} Zusätzlich braucht man noch - je nach Server - das Paket '''python3-certbot-nginx''' bzw '''python3-certbot-apache''' {{{#!vorlage Paketinstallation python3-certbot-nginx, universe }}} {{{#!vorlage Paketinstallation python3-certbot-apache, universe }}} = Aufruf und Optionen = '''certbot''' muss mit Root-Rechten aufgerufen werden {{{#!vorlage Befehl sudo certbot }}} und kennt folgende Optionen: {{{#!vorlage Tabelle Option 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 +++ `--apache` Der Zielserver läuft unter Apache +++ `--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. = Beispiele = Anmelden bei der Zertifizierungsstelle und einrichten eines Accounts: {{{#!vorlage Befehl sudo certbot register }}} Erstellen, holen und speichern eines Zertifikates für den lokalen Webserver (eine oder mehrere Domains): {{{#!vorlage Befehl sudo certbot --nginx -d example.org sudo certbot --nginx -d example.org -d www.example.org -d test.example.org }}} = Links = * [https://certbot.eff.org/ Projektseite] {en} * [https://letsencrypt.org/de/ Homepage von Let’s Encrypt] {de} #tag: DNS, Internet, Let's-Encrypt, letsencrypt, Netzwerk, Server, Sicherheit, SSL, System, TLS