So erhalten Sie SSL-Zertifikate von Let’s Encrypt mithilfe der DNS-Validierung von Certbot CloudFlare

So Erhalten Sie Ssl Zertifikate Von Let S Encrypt Mithilfe Der Dns Validierung Von Certbot Cloudflare



Certbot ist ein ACME-Client für die Zertifizierungsstelle (CA) von Let’s Encrypt. Es wird verwendet, um ein Let’s Encrypt SSL-Zertifikat zu generieren und dieses automatisch zu erneuern. Standardmäßig verwendet Certbot die Let’s Encrypt HTTP-01-Challenge, um den Besitz der Domain zu überprüfen und ein SSL-Zertifikat für die Domain auszustellen. Die HTTP-01-Herausforderung funktioniert jedoch nur, wenn Sie über eine öffentliche IP-Adresse verfügen und Ihr Computer über das Internet erreichbar ist. Wenn Sie also die SSL-Zertifikate von Let’s Encrypt für Ihr Heimnetzwerk oder privates Netzwerk verwenden möchten, müssen Sie stattdessen die DNS-01-Challenge nutzen. Wenn die DNS-01-Herausforderung verwendet wird, überprüft Let’s Encrypt den Besitz der Domäne mithilfe des DNS-Servers der Domäne. Es funktioniert also auch für private Netzwerke.

Eine ausführliche Erklärung zur Funktionsweise der Let’s Encrypt DNS-01-Challenge (oder DNS-Validierung) finden Sie im Artikel „Was ist die Let’s Encrypt DNS-01-Challenge und wie verwendet man sie zum Erhalten der SSL-Zertifikate?“.

In diesem Artikel zeigen wir Ihnen, wie Sie die DNS-Validierung von Let’s Encrypt verwenden, um mithilfe des Certbot- und Certbot CloudFlare-DNS-Plugins ein SSL-Zertifikat für Ihren Domainnamen zu erhalten.







Inhaltsthema:

  1. Verwalten Sie Ihre Domain mit CloudFlare DNS
  2. Installieren von Certbot und Certbot CloudFlare Plugin unter Ubuntu/Debian
  3. Installieren von Certbot und Certbot CloudFlare Plugin auf Fedora
  4. Installieren von Certbot und Certbot CloudFlare Plugin auf RHEL/AlmaLinux/Rocky Linux/CentOS Stream
  5. Überprüfen, ob Certbot und Certbot CloudFlare Plugin korrekt installiert sind
  6. Generieren eines CloudFlare-API-Tokens
  7. Sicheres Speichern des CloudFlare-API-Tokens auf dem Computer/Server
  8. Generieren eines SSL-Zertifikats mithilfe der Certbot CloudFlare DNS-Validierung
  9. Auflistung der Let's Encrypt SSL-Zertifikate mit Certbot
  10. Erneuern der Let's Encrypt SSL-Zertifikate mit Certbot
  11. Abschluss
  12. Verweise

Verwalten Sie Ihre Domain mit CloudFlare DNS

Um ein Let’s Encrypt SSL-Zertifikat mithilfe der CloudFlare-DNS-Validierung zu erhalten, müssen Sie über ein CloudFlare-Konto verfügen und Ihre Domain muss das CloudFlare-DNS verwenden. Du kannst Erstellen Sie kostenlos ein CloudFlare-Konto Die Nutzung des CloudFlare-DNS-Dienstes ist ebenfalls kostenlos.



Um Ihre Domain mit CloudFlare DNS zu verwalten, können Sie einen der folgenden Schritte ausführen:



  • Registrieren Sie Ihre Domain bei CloudFlare
  • Übertragen Sie Ihre Domain zu CloudFlare
  • Ändern Sie den DNS-Nameserver Ihres Domainnamens im Dashboard Ihres Domain-Registrators in den CloudFlare-DNS-Nameserver

Sie müssen keine Domain von CloudFlare kaufen oder eine Domain zu CloudFlare übertragen, um sie mit dem CloudFlare-DNS-Dienst zu verwalten. Sie können den Nameserver Ihrer Domain einfach über das Dashboard Ihres Domain-Registrators (bei dem Sie die Domain gekauft haben) in den CloudFlare-DNS-Nameserver ändern und Ihre Domain über CloudFlare verwalten. Weitere Informationen zum Ändern des Nameservers Ihrer Domain zum CloudFlare-DNS-Nameserver finden Sie in diesem Artikel.





Installieren von Certbot und Certbot CloudFlare Plugin unter Ubuntu/Debian

Certbot und das Certbot CloudFlare-Plugin sind im offiziellen Paket-Repository von Ubuntu/Debian verfügbar. Sie können sie also ganz einfach auf Ubuntu/Debian installieren.

Aktualisieren Sie zunächst den APT-Paket-Repository-Cache mit dem folgenden Befehl:



$ Sudo passendes Update

  Ein Screenshot einer automatisch generierten Computerbeschreibung

Führen Sie den folgenden Befehl aus, um Certbot und das Certbot CloudFlare DNS-Plugin zu installieren:

$ Sudo geeignet Installieren certbot python3-certbot-dns-cloudflare

Um die Installation zu bestätigen, drücken Sie „Y“ und dann drücken .

Certbot und das Certbot CloudFlare DNS-Plugin werden installiert. Es dauert eine Weile, bis es fertig ist.

Zu diesem Zeitpunkt sollten Certbot und das Certbot CloudFlare DNS-Plugin installiert sein.

Installieren von Certbot und Certbot CloudFlare Plugin auf Fedora

Certbot und das Certbot CloudFlare-Plugin sind im offiziellen Paket-Repository von Fedora verfügbar und können sehr einfach auf Fedora installiert werden.

Aktualisieren Sie zunächst die DNF-Paketdatenbank mit dem folgenden Befehl:

$ Sudo DNF-Makecache

  Ein Screenshot einer automatisch generierten Computerbeschreibung

Um Certbot und das Certbot CloudFlare DNS-Plugin auf Fedora zu installieren, führen Sie den folgenden Befehl aus:

$ Sudo dnf Installieren certbot python3-certbot-dns-cloudflare

Um die Installation zu bestätigen, drücken Sie „Y“ und dann drücken .

  Ein Screenshot einer automatisch generierten Computerbeschreibung

Certbot und das Certbot CloudFlare DNS-Plugin werden installiert. Es dauert eine Weile, bis es fertig ist.

  Ein Screenshot einer automatisch generierten Computerprogrammbeschreibung

Zu diesem Zeitpunkt sollten Certbot und das Certbot CloudFlare DNS-Plugin auf Fedora installiert sein.

  Ein Screenshot einer automatisch generierten Computerbeschreibung

Installieren von Certbot und Certbot CloudFlare Plugin auf RHEL/AlmaLinux/Rocky Linux/CentOS Stream

Das Certbot CloudFlare DNS-Plugin ist nicht in den offiziellen Paket-Repositories von RHEL/AlmaLinux/Rocky Linux/CentOS Stream verfügbar. Das Certbot CloudFlare DNS-Plugin ist im EPEL-Paket-Repository verfügbar. Sie können das EPEL-Paket-Repository auf RHEL/AlmaLinux/Rocky Linux/CentOS Stream aktivieren und von dort aus das Certbot CloudFlare DNS-Plugin installieren.

Nachdem Sie das EPEL-Paket-Repository aktiviert haben, aktualisieren Sie den DNF-Datenbank-Cache mit dem folgenden Befehl:

$ Sudo DNF-Makecache

  Ein Screenshot einer automatisch generierten Computerbeschreibung

Installieren Sie dann Certbot und das Certbot CloudFlare DNS-Plugin auf Ihrem RHEL/AlmaLinux/Rocky Linux/CentOS Stream-System mit dem folgenden Befehl:

$ Sudo dnf Installieren certbot python3-certbot-dns-cloudflare

Um die Installation zu bestätigen, drücken Sie „Y“ und dann drücken .

  Ein Screenshot einer automatisch generierten Computerbeschreibung

Certbot und das Certbot CloudFlare DNS-Plugin werden installiert. Es dauert eine Weile, bis es fertig ist.

  Ein Screenshot einer automatisch generierten Computerbeschreibung

Um den GPG-Schlüssel des EPEL-Repositorys zu akzeptieren, drücken Sie „Y“ und dann drücken .

  Ein Screenshot einer automatisch generierten Computerbeschreibung

Zu diesem Zeitpunkt sollten Certbot und das Certbot CloudFlare DNS-Plugin installiert sein.

  Ein Screenshot einer automatisch generierten Computerbeschreibung

Überprüfen, ob Certbot und Certbot CloudFlare Plugin korrekt installiert sind

Um zu überprüfen, ob Certbot auf Ihrem Computer installiert ist, führen Sie den folgenden Befehl aus:

$ Certbot --Ausführung

Wenn Certbot installiert ist, sollte der Befehl die Versionsnummer des installierten Certbot auf Ihrem Computer ausgeben.

Wie Sie sehen können, haben wir Certbot 2.1.0 auf unserem Debian-Rechner installiert.

  Ein Screenshot einer automatisch generierten Computerbeschreibung

Um zu überprüfen, ob das Certbot CloudFlare DNS-Plugin auf Ihrem Computer installiert ist, führen Sie den folgenden Befehl aus:

$ Sudo Certbot-Plugins

Wenn das Certbot CloudFlare DNS-Plugin installiert ist, sollten Sie „dns-cloudflare“ in der Plugin-Liste finden, wie im folgenden Screenshot markiert:

  Ein Screenshot einer automatisch generierten Computerbeschreibung

Generieren eines CloudFlare-API-Tokens

Um den Besitz der Domäne zu überprüfen, muss Certbot einen TXT-Eintrag in der Domäne hinzufügen, die vom CloudFlare-DNS-Server verwaltet wird. Dafür benötigt Certbot Zugriff auf das CloudFlare-API-Token. Sie können über das CloudFlare-Dashboard ein API-Token für Ihre Domain erstellen.

Melden Sie sich zunächst bei Ihrem CloudFlare-Konto an. Klicken Sie dann auf Ihr Profilsymbol

> Mein Profil in der oberen rechten Ecke der Seite.

Navigieren Sie zum Abschnitt „API-Tokens“. [1] und klicken Sie auf „Token erstellen“ [2] .

  Ein Screenshot einer automatisch generierten Computerbeschreibung

Klicken Sie im Abschnitt „Zonen-DNS bearbeiten“ auf „Vorlage verwenden“.

  Ein Screenshot einer automatisch generierten Computerbeschreibung

Erteilen Sie im Abschnitt „Berechtigung“ der „DNS-Zone“ die Berechtigung „Bearbeiten“, indem Sie die markierten Optionen aus den Dropdown-Menüs auswählen.

  Ein Screenshot einer automatisch generierten Computerbeschreibung

Wenn Sie mehrere Domänen mit CloudFlare verwalten, können Sie die Änderung einer „Spezifischen Zone“ im Abschnitt „Zonenressource“ zulassen. Es ist sicherer, einem API-Token zu erlauben, nur eine einzelne Zone zu ändern, als dem API-Token zu erlauben, alle Zonen zu ändern. Dies liegt daran, dass bei einer Kompromittierung des API-Tokens die Angriffsfläche kleiner wird und weniger Schaden angerichtet wird.

  Ein Screenshot einer automatisch generierten Computerbeschreibung

Wenn Sie einen einzigen API-Schlüssel verwenden möchten, um alle Ihre von CloudFlare verwalteten Domänen zu ändern, wählen Sie „Alle Zonen“ im Abschnitt „Zonenressource“ aus.

  Ein Screenshot einer automatisch generierten Computerbeschreibung

Wenn Sie mit der Konfiguration Ihres API-Tokens fertig sind, klicken Sie auf „Weiter zur Zusammenfassung“.

  Ein Screenshot einer automatisch generierten Computerbeschreibung

Es wird eine Zusammenfassung der Aktionen angezeigt, die Sie mit dem API-Token auf Ihren von CloudFlare verwalteten Domänen ausführen können. Klicken Sie auf „Token erstellen“.

  Ein Screenshot einer automatisch generierten Computerbeschreibung

Es sollte ein API-Token erstellt werden. Kopieren Sie das API-Token an einen sicheren Ort, damit Sie es nicht verlieren. Sobald Sie diese Seite verlassen, können Sie dieses API-Token nicht mehr finden. Sie müssen ein neues API-Token generieren, falls Sie es verlieren:

LyPCAcOBygX1UMHvcsvBFo41aItm2cCVxnjloZj5

  Ein Screenshot einer automatisch generierten Computerbeschreibung

Sicheres Speichern des CloudFlare-API-Tokens auf dem Computer/Server

Certbot muss das CloudFlare-API-Token verwenden, um einen neuen TXT-Eintrag für Ihre Domain im CloudFlare-DNS-Server hinzuzufügen. Daher müssen Sie das CloudFlare-API-Token auf Ihrem Computer/Server speichern. Das Speichern des API-Tokens ohne Sicherstellung der richtigen Dateizugriffsberechtigungen kann anderen Programmen/Benutzern Zugriff auf das API-Token ermöglichen. Dies ist aus Sicherheitsgründen nicht das, was Sie wollen. In diesem Abschnitt zeigen wir Ihnen, wie Sie das CloudFlare-API-Token sicher im Dateisystem speichern.

Erstellen Sie zunächst wie folgt ein Verzeichnis (z. B. ~/.secrets/certbot), in dem Sie den CloudFlare-API-Schlüssel speichern möchten:

$ mkdir -pv ~ / .Geheimnisse / Certbot

  Ein Screenshot einer automatisch generierten Computerbeschreibung

Erstellen Sie eine „cloudflare.ini“-Datei im neu erstellten Verzeichnis (d. h. ~/.secrets/certbot) und öffnen Sie sie mit Ihrem bevorzugten Texteditor (d. h. Nano) wie folgt:

$ Nano ~ / .Geheimnisse / Certbot / cloudflare.ini

Geben Sie die folgende Zeile in die Datei „cloudflare.ini“ ein und drücken Sie + X gefolgt von „Y“ und um es zu speichern (wenn Sie den Nano-Texteditor verwenden).

dns_cloudflare_api_token = < Ihr-Cloudflare-API-Token >

  Ein Screenshot einer automatisch generierten Computerbeschreibung

Um eine ordnungsgemäße Zugriffsberechtigung für die Datei „cloudflare.ini“ sicherzustellen, führen Sie die folgenden Befehle aus, um sicherzustellen, dass nur der Root-Benutzer Lese- und Schreibzugriff auf die Datei hat:

$ Sudo chown root:root ~ / .Geheimnisse / Certbot / cloudflare.ini

$ Sudo chmod 0600 ~ / .Geheimnisse / Certbot / cloudflare.ini

Wie Sie sehen, verfügt nur der Root-Benutzer über Lese- und Schreibberechtigungen für die Datei „cloudflare.ini“.

$ ls -lh ~ / .Geheimnisse / Certbot / cloudflare.ini

Andere Benutzer, die versuchen, die Datei „cloudflare.ini“ zu lesen, erhalten die Fehlermeldung „Berechtigung verweigert“.

$ Katze ~ / .Geheimnisse / Certbot / cloudflare.ini

  Ein Screenshot einer automatisch generierten Computerbeschreibung

Generieren eines SSL-Zertifikats mithilfe der Certbot CloudFlare DNS-Validierung

Um mithilfe der CloudFlare-DNS-Validierung ein Let’s Encrypt SSL-Zertifikat für den Wildcard-Domänennamen „*.nodekite.com“ zu generieren, führen Sie den Befehl cerbot wie folgt aus:

$ Sudo Certbot mit Sicherheit --dns-cloudflare --dns-cloudflare-credentials ~ / .Geheimnisse / Certbot / cloudflare.ini -D * .nodekite.com

So generieren Sie ein Let’s Encrypt SSL-Zertifikat für die Domainnamen „nodekite.com“ und „www.nodekite.com” using the CloudFlare DNS validation, use the “-d” option of the certbot command for each domain name as follows“:

$ Sudo Certbot mit Sicherheit --dns-cloudflare --dns-cloudflare-credentials ~ / .Geheimnisse / Certbot / cloudflare.ini -D www.nodekite.com -D nodekite.com

Wenn es lange dauert, bis die DNS-Änderungen auf die gängigen DNS-Nameserver weltweit übertragen werden, können Sie mit der Option „–dns-cloudflare-propagation-seconds“ von Certbot die Anzahl der Sekunden festlegen, die Certbot vor der DNS-Validierung warten soll ist durchgeführt.

$ Sudo Certbot mit Sicherheit --dns-cloudflare --dns-cloudflare-credentials ~ / .Geheimnisse / Certbot / cloudflare.ini --dns-cloudflare-propagation-seconds 60 -D * .nodekite.com

Sobald Sie den Certbot-Befehl ausführen, werden Sie aufgefordert, Ihre E-Mail-Adresse einzugeben. Geben Sie Ihre E-Mail-Adresse ein und drücken Sie weitermachen.

Drücken Sie „Y“ und dann drücken um die „Nutzungsbedingungen“ von Let’s Encrypt zu akzeptieren.

  Ein Screenshot einer automatisch generierten Computerbeschreibung

Drücken Sie „Y“ und dann drücken .

  Ein Screenshot einer automatisch generierten Computerprogrammbeschreibung

Es wird ein Let’s Encrypt SSL-Zertifikat ausgestellt. Es dauert eine Weile, bis es fertig ist.

  Ein Screenshot einer automatisch generierten Computerfehlerbeschreibung

Zu diesem Zeitpunkt wird das SSL-Zertifikat von Let’s Encrypt ausgestellt. Der vollständige Pfad, in dem die SSL-Zertifikatdateien gespeichert sind, sollte angezeigt werden. Außerdem sollte das Ablaufdatum des SSL-Zertifikats angezeigt werden.

  Ein Screenshot einer automatisch generierten Computerbeschreibung

Auflistung der Let's Encrypt SSL-Zertifikate mit Certbot

Mit dem folgenden Befehl können Sie alle Let’s Encrypt SSL-Zertifikate auflisten, die Sie mit Certbot generiert haben:

$ Sudo Certbot-Zertifikate

Wie Sie sehen können, wird das generierte Let’s Encrypt SSL-Zertifikat für die Domain „nodekite.com“ aufgelistet [1] . Für „nodekite.com“ wird ein Wildcard-SSL-Zertifikat ausgestellt. [2] Domainname. Das Ablaufdatum des Zertifikats ist der 20.03.2024 (gültig für 89 Tage) [3] . Hier werden auch der Pfad des Zertifikats und des privaten Schlüssels aufgeführt [4] .

  Ein Screenshot einer automatisch generierten Computerbeschreibung

Certbot speichert alle SSL-Zertifikate, die Sie für Ihre Domains generiert haben, im Verzeichnis „/etc/letsencrypt/live“ in ihrem jeweiligen Ordner.

$ Sudo ls -Rlh / usw / letsencrypt / live /

  Ein Screenshot einer automatisch generierten Computerbeschreibung

Erneuern der Let's Encrypt SSL-Zertifikate mit Certbot

Certbot erneuert automatisch alle Let’s Encrypt SSL-Zertifikate, die Sie mithilfe der CloudFlare-DNS-Validierung generiert haben.

Um zu testen, ob die automatische Verlängerungsfunktion der Let’s Encrypt SSL-Zertifikate funktioniert, führen Sie den folgenden Befehl aus:

$ Sudo certbot erneuern --Probelauf

Die automatische Verlängerung wird für jedes der von Ihnen generierten Let’s Encrypt SSL-Zertifikate simuliert.

  Ein Screenshot einer automatisch generierten Computerbeschreibung

Wenn die Tests erfolgreich sind, werden Sie beglückwünscht. Ein erfolgreicher Test bedeutet, dass die SSL-Zertifikate vor Ablauf automatisch erneuert werden. Sie müssen nichts weiter tun.

  Ein Screenshot einer automatisch generierten Computerbeschreibung

Damit die automatische Erneuerungsfunktion von Certbot funktioniert, muss der Systemd-Timer „cerbot.timer“ auf Ihrem Computer/Server aktiviert und aktiv sein.

Mit dem folgenden Befehl können Sie überprüfen, ob der systemd-Timer „cerbot.timer“ aktiviert und aktiv ist:

$ Sudo systemctl-Status certbot.timer

Wie Sie sehen können, ist der Systemd-Timer „certbot.timer“ aktiviert (startet automatisch beim Booten). [1] und aktiv [2] . Certbot prüft bereits nach 11 Minuten, ob ein SSL-Zertifikat erneuert werden muss (siehe folgender Screenshot) und erneuert die bald ablaufenden SSL-Zertifikate [3] .

  Ein Screenshot einer automatisch generierten Computerbeschreibung

Um manuell zu prüfen, ob ein SSL-Zertifikat demnächst abläuft, und die ablaufenden SSL-Zertifikate zu erneuern, führen Sie den folgenden Befehl aus:

$ Sudo certbot erneuern

In unserem Fall läuft kein SSL-Zertifikat ab. Daher hat Certbot nicht versucht, ein SSL-Zertifikat zu erneuern.

Um Certbot zu zwingen, das SSL-Zertifikat einer bestimmten Domäne (z. B. *.nodekite.com) zu erneuern, führen Sie den folgenden Befehl aus:

$ Sudo Certbot mit Sicherheit --force-renew -D * .nodekite.com

Drücken Sie „1“ und drücken Sie um die erste Option auszuwählen (für die DNS-Validierung mit CloudFlare DNS).

  Ein Screenshot einer automatisch generierten Computerbeschreibung

Das SSL-Zertifikat sollte erneuert werden.

Abschluss

Um ein Let’s Encrypt SSL-Zertifikat mithilfe der CloudFlare-DNS-Validierung mit Certbot zu erhalten, benötigen Sie Zugriff auf das CloudFlare-API-Token. In diesem Artikel haben wir Ihnen gezeigt, wie Sie ein CloudFlare-API-Token für Ihre Domain erstellen und es sicher auf Ihrem Computer/Server speichern, damit Sie bei Bedarf mit Certbot darauf zugreifen können. Wir haben Ihnen auch gezeigt, wie Sie Certbot und das Certbot CloudFlare DNS-Plugin auf den gängigsten Linux-Distributionen installieren. Wir haben Ihnen gezeigt, wie Sie mithilfe der Certbot- und CloudFlare-DNS-Validierung die Let’s Encrypt-Wildcard-SSL-Zertifikate sowie SSL-Zertifikate für einzelne Domänen generieren. Abschließend haben wir Ihnen gezeigt, wie Sie die SSL-Zertifikate von Let’s Encrypt mit Certbot automatisch und manuell erneuern können.

Verweise: