Som standard använder Let's Encrypt HTTP-01-utmaningen för att verifiera ägandet. HTTP-01-utmaningen lägger en fil på din webbservers webbrot och använder webbserverns DNS-namn för att hämta filen. Om filen kan hämtas från internet, verifieras domännamnets auktoritet och SSL-certifikatet utfärdas. Det är bra för de flesta servrar och hemanvändare som har råd med en offentlig IP-adress från sin internetleverantör (ISP).
Men vad händer om du vill använda Let's Encrypt SSL-certifikat för domännamnen på ditt hemnätverk eller privata/interna nätverk? Tja, i de flesta hemnätverk är det en utmaning att få ett Let's Encrypt SSL-certifikat eftersom din internetleverantör troligen inte kommer att ge dig en offentlig IP-adress. Så du kommer inte att kunna klara Let's Encrypt HTTP-01-utmaningen (eftersom dina datorer/servrar inte är tillgängliga från internet).
I det här fallet kan du använda Let's Encrypt DNS-01-utmaningen för att få SSL-certifikaten för ditt hem/interna nätverk. I den här metoden lägger Let's Encrypt till en DNS TXT-post för 'underdomänen _acme-challenge.yourdomain.xyz' på din DNS-server och kontrollerar om DNS TXT-posten är tillgänglig från internet. Om TXT-posten matchar, verifieras du som ägare av domänen och Let's Encrypt utfärdar SSL-certifikatet.
För att Let's Encrypt DNS-01-utmaningen ska fungera och automatiskt förnya SSL-certifikatet måste du använda en DNS-tjänsteleverantör (dvs. CloudFlare, DigitalOcean) som exponerar ett API som kan användas för att lägga till/ta bort TXT-posterna på DNS-servern.
Om din DNS-registrator (där du registrerade domännamnet) inte har stöd för sådana tjänster kan du använda en tredjepartsleverantör av DNS-tjänster. Allt du behöver göra är att ändra DNS-namnserveradressen för din domän från din DNS-registrators DNS-server till DNS-namnserveradressen för din önskade tredjeparts DNS-tjänsteleverantör.
Ämne för innehåll:
- Lista över DNS-leverantörer som enkelt integreras med Let's Encrypt DNS-validering
- Lista över Let's Encrypt ACME-klienter
- Ändra DNS-namnservern från din domänregistrator
- Fördelar med Let's Encrypt DNS-01-validering
- Nackdelar med Let's Encrypt DNS-01-validering
- Slutsats
- Referenser
Lista över DNS-leverantörer som enkelt integreras med Let's Encrypt DNS-validering
Communityn Let's Encrypt har sammanställt en lista över DNS-leverantörer som avslöjar någon form av API för att automatiskt lägga till/ta bort DNS-posterna så att Let's Encrypt-klienterna kan validera domännamnen och utfärda SSL-certifikaten.
Listan över DNS-leverantörer som enkelt integreras med Let's Encrypt DNS-validering finns på den här länken .
Lista över Let's Encrypt ACME-klienter
Let's Encrypt-klienter kallas också ACME-klienter. ACME står för Automatic Certificate Management Environment. ACME är ett protokoll för att automatisera interaktionen mellan datorn/servern och certifikatmyndigheten (dvs Let's Encrypt).
De mest populära Let's Encrypt ACME-klienterna är:
Ändra DNS-namnservern från din domänregistrator
Om din domänregistrator inte finns på listan över DNS-leverantörer som enkelt integreras med Let’s Encrypt, kan du använda CloudFlare eller andra tredjeparts DNS-tjänsteleverantörer. Allt du behöver göra är att ändra DNS-namnservern för din domän från instrumentpanelen för din domänregistrator till DNS-namnservern för den tredje parts DNS-tjänsteleverantör som du vill använda.
Vi visade dig processen för att ändra DNS-namnservern (till CloudFlares DNS-server) för en av våra domäner från instrumentpanelen/webbplatsen för vår domänregistrator (där vi registrerade vårt domännamn) i följande skärmdump. Processen bör vara liknande för din domänregistrator. För mer information, läs dokumentationen från din domänregistrator eller kontakta dem.
Fördelar med Let's Encrypt DNS-01-validering
Fördelarna med Let's Encrypts DNS-01-validering är:
- Det kräver inte en offentlig/internettillgänglig IP-adress eller en webbserver.
- Du kan använda den för att utfärda SSL-certifikat för jokerteckendomännamn (dvs. *.nodekite.com, *.linuxhint.com).
- Det fungerar bra för flera webbservrar.
Nackdelar med Let's Encrypt DNS-01-validering
Även om det finns många fördelar med Let's Encrypt DNS-01-validering, finns det också några nackdelar:
- För att DNS-01-validering ska fungera måste du behålla API-nyckeln/token för din DNS-tjänsteleverantör på servern som en Let's Encrypt-klient kommer att använda för att skapa en TXT-post på DNS-servern för DNS-01-validering. Eftersom API-nyckeln/token hålls på servern, om servern hackas, finns det en chans att API-nyckeln/token äventyras.
- Efter att Let's Encrypt-klienten har lagt till en TXT-post på DNS-servern tar det ett tag att sprida ändringarna till andra DNS-namnservrar över hela världen. Let's Encrypt-klienten måste vänta på att ändringarna ska spridas till de vanliga DNS-namnservrarna över hela världen för att verifiera ägandet av domänen. Om din DNS-tjänstleverantör inte tillhandahåller DNS-utbredningstiden i API:t kommer Let's Encrypt-klienten inte att veta hur länge den ska vänta på att DNS-ändringarna ska spridas till andra namnservrar över hela världen. I så fall kan DNS-valideringen timeout, och Let's Encrypt kan misslyckas med att utfärda ett SSL-certifikat.
Slutsats
I den här artikeln diskuterade vi Let's Encrypt DNS-01-utmaningen och varför använda den över standard HTTP-01-utmaningen för att verifiera ägandet av ett domännamn. Vi diskuterade också kraven för att klara Let's Encrypt DNS-01-utmaningen för att få ett Let's Encrypt SSL-certifikat. Vi listade DNS-tjänsteleverantörerna som integrerar väl med Let's Encrypt samt Let's Encrypt ACME-klienter som du kan använda för att utföra DNS-validering från din dator/server. Slutligen diskuterade vi fördelarna och nackdelarna med Let's Encrypt DNS-validering.
Referenser:
- Utmaningstyper – Låt oss kryptera
- DNS-leverantörer som enkelt integrerar med Let’s Encrypt DNS-validering – Issuance Tech – Let’s Encrypt Community Support
- Automatisk certifikathanteringsmiljö – Wikipedia
- Certbot
- GitHub – acmesh-official/acme.sh: Ett rent Unix-skalskript som implementerar ACME-klientprotokoll
- Installation :: Let's Encrypt klient och ACME-bibliotek skrivna i Go.
- Hem – Posh-ACME