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:
- Verwalten Sie Ihre Domain mit CloudFlare DNS
- Installieren von Certbot und Certbot CloudFlare Plugin unter Ubuntu/Debian
- Installieren von Certbot und Certbot CloudFlare Plugin auf Fedora
- Installieren von Certbot und Certbot CloudFlare Plugin auf RHEL/AlmaLinux/Rocky Linux/CentOS Stream
- Überprüfen, ob Certbot und Certbot CloudFlare Plugin korrekt installiert sind
- Generieren eines CloudFlare-API-Tokens
- Sicheres Speichern des CloudFlare-API-Tokens auf dem Computer/Server
- Generieren eines SSL-Zertifikats mithilfe der Certbot CloudFlare DNS-Validierung
- Auflistung der Let's Encrypt SSL-Zertifikate mit Certbot
- Erneuern der Let's Encrypt SSL-Zertifikate mit Certbot
- Abschluss
- 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
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
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
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 auf Fedora installiert sein.
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
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
Certbot und das Certbot CloudFlare DNS-Plugin werden installiert. Es dauert eine Weile, bis es fertig ist.
Um den GPG-Schlüssel des EPEL-Repositorys zu akzeptieren, drücken Sie „Y“ und dann drücken
Zu diesem Zeitpunkt sollten Certbot und das Certbot CloudFlare DNS-Plugin installiert sein.
Ü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ührungWenn 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.
Um zu überprüfen, ob das Certbot CloudFlare DNS-Plugin auf Ihrem Computer installiert ist, führen Sie den folgenden Befehl aus:
$ Sudo Certbot-PluginsWenn das Certbot CloudFlare DNS-Plugin installiert ist, sollten Sie „dns-cloudflare“ in der Plugin-Liste finden, wie im folgenden Screenshot markiert:
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] .
Klicken Sie im Abschnitt „Zonen-DNS bearbeiten“ auf „Vorlage verwenden“.
Erteilen Sie im Abschnitt „Berechtigung“ der „DNS-Zone“ die Berechtigung „Bearbeiten“, indem Sie die markierten Optionen aus den Dropdown-Menüs auswählen.
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.
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.
Wenn Sie mit der Konfiguration Ihres API-Tokens fertig sind, klicken Sie auf „Weiter zur Zusammenfassung“.
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“.
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
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
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
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
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.comSo 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.comWenn 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
Drücken Sie „Y“ und dann drücken
Drücken Sie „Y“ und dann drücken
Es wird ein Let’s Encrypt SSL-Zertifikat ausgestellt. Es dauert eine Weile, bis es fertig ist.
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.
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-ZertifikateWie 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] .
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 /
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 --ProbelaufDie automatische Verlängerung wird für jedes der von Ihnen generierten Let’s Encrypt SSL-Zertifikate simuliert.
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.
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.timerWie 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] .
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 erneuernIn 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
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.