För en detaljerad förklaring om hur Let's Encrypt DNS-01-utmaningen (eller DNS-validering) fungerar, läs artikeln med titeln What Is Let's Encrypt DNS-01 Challenge och hur man använder den för att få SSL-certifikaten.
I den här artikeln kommer vi att visa dig hur du använder Let's Encrypt DNS-validering för att få ett SSL-certifikat för ditt domännamn med Certbot och Certbot CloudFlare DNS-plugin.
Ämne för innehåll:
- Hantera din domän med CloudFlare DNS
- Installera Certbot och Certbot CloudFlare Plugin på Ubuntu/Debian
- Installerar Certbot och Certbot CloudFlare Plugin på Fedora
- Installera Certbot och Certbot CloudFlare Plugin på RHEL/AlmaLinux/Rocky Linux/CentOS Stream
- Kontrollera om Certbot och Certbot CloudFlare Plugin är korrekt installerade
- Genererar ett CloudFlare API-token
- Säker lagring av CloudFlare API-token på datorn/servern
- Generera ett SSL-certifikat med Certbot CloudFlare DNS-validering
- Lista Let's Encrypt SSL-certifikat med Certbot
- Förnya Let's Encrypt SSL-certifikat med Certbot
- Slutsats
- Referenser
Hantera din domän med CloudFlare DNS
För att få ett Let's Encrypt SSL-certifikat med CloudFlare DNS-validering måste du ha ett CloudFlare-konto och din domän måste använda CloudFlare DNS. Du kan skapa ett CloudFlare-konto gratis och CloudFlare DNS-tjänsten är gratis att använda också.
För att hantera din domän med CloudFlare DNS kan du göra något av följande:
- Registrera din domän från CloudFlare
- Överför din domän till CloudFlare
- Ändra DNS-namnservern för ditt domännamn till CloudFlare DNS-namnserver från instrumentpanelen för din domänregistrator
Du behöver inte köpa en domän från CloudFlare eller överföra en domän till CloudFlare för att hantera den med CloudFlare DNS-tjänst. Du kan bara ändra namnservern för din domän till CloudFlare DNS-namnserver från instrumentpanelen för din domänregistrator (där du köpte domänen från) och hantera din domän från CloudFlare. För mer information om hur du ändrar namnservern för din domän till CloudFlare DNS-namnservern, läs den här artikeln.
Installera Certbot och Certbot CloudFlare Plugin på Ubuntu/Debian
Certbot och Certbot CloudFlare plugin är tillgängliga i det officiella paketförrådet för Ubuntu/Debian. Så du kan installera dem på Ubuntu/Debian väldigt enkelt.
Uppdatera först APT-paketförrådets cache med följande kommando:
$ sudo passande uppdatering
För att installera Certbot och Certbot CloudFlare DNS-plugin, kör följande kommando:
$ sudo benägen Installera certbot python3-certbot-dns-cloudflare För att bekräfta installationen, tryck på 'Y' och tryck sedan på
Certbot och Certbot CloudFlare DNS-plugin håller på att installeras. Det tar ett tag att slutföra.
Vid denna tidpunkt bör Certbot och Certbot CloudFlare DNS-plugin installeras.
Installerar Certbot och Certbot CloudFlare Plugin på Fedora
Certbot och Certbot CloudFlare plugin är tillgängliga i Fedoras officiella paketförråd och kan installeras på Fedora mycket enkelt.
Uppdatera först DNF-paketdatabasen med följande kommando:
$ sudo dnf makecache
För att installera Certbot och Certbot CloudFlare DNS-plugin på Fedora, kör följande kommando:
$ sudo dnf Installera certbot python3-certbot-dns-cloudflare För att bekräfta installationen, tryck på 'Y' och tryck sedan på
Certbot och Certbot CloudFlare DNS-plugin håller på att installeras. Det tar ett tag att slutföra.
Vid denna tidpunkt bör Certbot och Certbot CloudFlare DNS-plugin installeras på Fedora.
Installera Certbot och Certbot CloudFlare Plugin på RHEL/AlmaLinux/Rocky Linux/CentOS Stream
Certbot CloudFlare DNS-plugin är inte tillgänglig i de officiella paketförråden för RHEL/AlmaLinux/Rocky Linux/CentOS Stream. Certbot CloudFlare DNS-plugin är tillgänglig i EPEL-paketförrådet. Du kan aktivera EPEL-paketförrådet på RHEL/AlmaLinux/Rocky Linux/CentOS Stream och installera Certbot CloudFlare DNS-plugin därifrån.
När du har aktiverat EPEL-paketförrådet uppdaterar du DNF-databasens cache med följande kommando:
$ sudo dnf makecache
Installera sedan Certbot och Certbot CloudFlare DNS-plugin på ditt RHEL/AlmaLinux/Rocky Linux/CentOS Stream-system med följande kommando:
$ sudo dnf Installera certbot python3-certbot-dns-cloudflare För att bekräfta installationen, tryck på 'Y' och tryck sedan på
Certbot och Certbot CloudFlare DNS-plugin installeras. Det tar ett tag att slutföra.
För att acceptera GPG-nyckeln för EPEL-förvaret, tryck på 'Y' och tryck sedan
Vid denna tidpunkt bör Certbot och Certbot CloudFlare DNS-plugin installeras.
Kontrollera om Certbot och Certbot CloudFlare Plugin är korrekt installerade
För att kontrollera om Certbot är installerat på din dator, kör följande kommando:
$ certbot --versionOm Certbot är installerat bör kommandot skriva ut versionsnumret för den installerade Certbot på din dator.
Som du kan se har vi Certbot 2.1.0 installerat på vår Debian-maskin.
För att kontrollera om Certbot CloudFlare DNS-plugin är installerad på din dator, kör följande kommando:
$ sudo certbot pluginsOm Certbot CloudFlare DNS-plugin är installerad bör du hitta 'dns-cloudflare' i plugin-listan som markerats i följande skärmdump:
Genererar ett CloudFlare API-token
För att verifiera ägandet av domänen måste Certbot lägga till en TXT-post på domänen som hanteras av CloudFlare DNS-server. För det behöver Certbot tillgång till CloudFlare API-token. Du kan skapa en API-token för din domän från CloudFlare-instrumentpanelen.
Logga först in på ditt CloudFlare-konto. Klicka sedan på din profilikon
> Min profil från det övre högra hörnet på sidan.
Navigera till avsnittet 'API-tokens'. [1] och klicka på 'Skapa token' [2] .
Klicka på 'Använd mall' i avsnittet 'Redigera zon-DNS'.
Från avsnittet 'Tillstånd', tillåt 'Redigera'-behörighet till 'DNS-zon' genom att välja de markerade alternativen från rullgardinsmenyerna.
Om du hanterar flera domäner med CloudFlare kan du tillåta modifiering av en 'specifik zon' från avsnittet 'Zonresurs'. Att tillåta en API-token att ändra endast en enskild zon är säkrare än att tillåta API-token att modifiera alla zoner. Detta beror på att om API-tokenet äventyras kommer attackytan att bli mindre och mindre skada kommer att ske.
Om du vill använda en enda API-nyckel för att ändra alla dina CloudFlare-hanterade domäner, välj 'Alla zoner' från avsnittet 'Zonresurs'.
När du är klar med att konfigurera din API-token klickar du på 'Fortsätt till sammanfattning'.
En sammanfattning av de åtgärder som du kan utföra på dina CloudFlare-hanterade domäner med API-token kommer att visas. Klicka på 'Skapa token'.
En API-token bör skapas. Kopiera API-token någonstans säkert så att du inte tappar bort den. När du lämnar den här sidan kommer du inte att kunna hitta denna API-token igen. Du måste generera en ny API-token om du skulle förlora den:
LyPCAcOBygX1UMHvcsvBFo41aItm2cCVxnjloZj5
Säker lagring av CloudFlare API-token på datorn/servern
Certbot måste använda CloudFlare API-token för att lägga till en ny TXT-post för din domän i CloudFlare DNS-server. Så du måste lagra CloudFlare API-token på din dator/server. Att lagra API-token utan att säkerställa rätt filåtkomstbehörigheter kan tillåta andra program/användare med åtkomst till API-token. Detta är inte vad du vill av säkerhetsskäl. I det här avsnittet kommer vi att visa dig hur du säkert lagrar CloudFlare API-token i filsystemet.
Skapa först en katalog (dvs. ~/.secrets/certbot) där du vill lagra CloudFlare API-nyckeln enligt följande:
$ mkdir -pv ~ / .hemligheter / certbot
Skapa en 'cloudflare.ini'-fil i den nyskapade katalogen (dvs. ~/.secrets/certbot) och öppna den med din favorittextredigerare (dvs. nano) enligt följande:
$ nano ~ / .hemligheter / certbot / cloudflare.ini Skriv in följande rad i filen 'cloudflare.ini' och tryck
För att säkerställa en korrekt åtkomstbehörighet för filen 'cloudflare.ini', kör följande kommandon för att se till att endast rotanvändaren har läs- och skrivåtkomst till filen:
$ sudo chown root:root ~ / .hemligheter / certbot / cloudflare.ini$ sudo chmod 0600 ~ / .hemligheter / certbot / cloudflare.ini
Som du kan se är det bara root-användaren som har läs- och skrivbehörigheter till filen 'cloudflare.ini'.
$ ls -lh ~ / .hemligheter / certbot / cloudflare.ini
Andra användare som försöker läsa filen 'cloudflare.ini' kommer att få ett 'Permission denied' felmeddelande.
$ katt ~ / .hemligheter / certbot / cloudflare.ini
Generera ett SSL-certifikat med Certbot CloudFlare DNS-validering
För att generera ett Let's Encrypt SSL-certifikat för jokerteckendomännamnet '*.nodekite.com' med CloudFlare DNS-validering, kör kommandot cerbot enligt följande:
$ sudo certbot certonly --dns-cloudflare --dns-cloudflare-referenser ~ / .hemligheter / certbot / cloudflare.ini -d * .nodekite.comSå här genererar du ett Let's Encrypt SSL-certifikat för domännamnen 'nodekite.com' och 'www.nodekite.com” using the CloudFlare DNS validation, use the “-d” option of the certbot command for each domain name as follows:
$ sudo certbot certonly --dns-cloudflare --dns-cloudflare-referenser ~ / .hemligheter / certbot / cloudflare.ini -d www.nodekite.com -d nodekite.comOm DNS-ändringarna tar lång tid att spridas till de populära DNS-namnservrarna över hela världen kan du använda alternativet '–dns-cloudflare-propagation-seconds' i Certbot för att ställa in antalet sekunder som du vill att Certbot ska vänta innan DNS-valideringen utförs.
$ sudo certbot certonly --dns-cloudflare --dns-cloudflare-referenser ~ / .hemligheter / certbot / cloudflare.ini --dns-cloudflare-propagation-seconds 60 -d * .nodekite.com När du har kört Certbot-kommandot kommer du att bli ombedd att skriva in din e-postadress. Skriv in din e-postadress och tryck
Tryck på 'Y' och tryck sedan på
Tryck på 'Y' och tryck sedan på
Ett Let's Encrypt SSL-certifikat utfärdas. Det tar ett tag att slutföra.
Vid denna tidpunkt utfärdas Let's Encrypt SSL-certifikatet. Den fullständiga sökvägen där SSL-certifikatfilerna sparas ska visas. Förfallodatumet för SSL-certifikatet bör också visas.
Lista Let's Encrypt SSL-certifikat med Certbot
Du kan lista alla Let's Encrypt SSL-certifikat som du genererade med Certbot med följande kommando:
$ sudo certbot-certifikatSom du kan se är det genererade Let's Encrypt SSL-certifikatet för 'nodekite.com'-domänen listat [1] . Ett jokertecken SSL-certifikat utfärdas för 'nodekite.com' [2] domän namn. Certifikatets utgångsdatum är 2024-03-20 (giltigt i 89 dagar) [3] . Certifikatet och sökvägen för den privata nyckeln listas också här [4] .
Certbot lagrar alla SSL-certifikat som du genererade för dina domäner i katalogen '/etc/letsencrypt/live' i deras respektive mapp.
$ sudo ls -Rlh / etc / letsencrypt / leva /
Förnya Let's Encrypt SSL-certifikat med Certbot
Certbot förnyar automatiskt alla Let's Encrypt SSL-certifikat som du genererade med CloudFlare DNS-validering.
För att testa om funktionen för automatisk förnyelse av Let's Encrypt SSL-certifikaten fungerar, kör följande kommando:
$ sudo certbot förnya --torrkörningÅtgärden för automatisk förnyelse simuleras för vart och ett av Let's Encrypt SSL-certifikaten som du genererade.
Om testerna är framgångsrika kommer du att bli gratulerad. Ett lyckat test innebär att SSL-certifikaten kommer att förnyas automatiskt innan de löper ut. Du behöver inte göra något annat.
För att funktionen för automatisk förnyelse av Certbot ska fungera måste systemtimern 'cerbot.timer' vara aktiverad och aktiv på din dator/server.
Du kan kontrollera om systemtimern 'cerbot.timer' är aktiverad och aktiv med följande kommando:
$ sudo systemctl status certbot.timerSom du kan se är systemtimern 'certbot.timer' aktiverad (startar automatiskt vid uppstart) [1] och aktiv [2] . Certbot kontrollerar om det finns ett behov av att förnya något SSL-certifikat efter bara 11 minuter (enligt följande skärmdump) och förnyar de SSL-certifikat som är på väg att löpa ut [3] .
För att manuellt kontrollera om något SSL-certifikat håller på att löpa ut och förnya de utgående SSL-certifikaten, kör följande kommando:
$ sudo certbot förnyaI vårt fall är inget SSL-certifikat på väg att löpa ut. Så Certbot försökte inte förnya något SSL-certifikat.
För att tvinga Certbot att förnya SSL-certifikatet för en specifik domän (låt oss säga *.nodekite.com), kör följande kommando:
$ sudo certbot certonly --tvinga-förnya -d * .nodekite.com Tryck på '1' och tryck
SSL-certifikatet bör förnyas.
Slutsats
För att få ett Let's Encrypt SSL-certifikat med CloudFlare DNS-validering med Certbot behöver du tillgång till CloudFlare API-token. I den här artikeln visade vi dig hur du skapar en CloudFlare API-token för din domän och lagrar den säkert på din dator/server så att du kan komma åt den med Certbot när det behövs. Vi visade dig också hur du installerar Certbot och Certbot CloudFlare DNS-plugin på de mest populära Linux-distributionerna. Vi visade dig hur du genererar Let's Encrypt jokertecken SSL-certifikat samt SSL-certifikat för enstaka domäner med Certbot och CloudFlare DNS-validering. Slutligen visade vi dig hur du förnyar Let's Encrypt SSL-certifikaten med Certbot automatiskt och manuellt.