Let's Encrypt och automatisering med ACME-protokollet
Automatisera utfärdande och förnyelse av certifikat med ACME-protokollet, Certbot och andra klienter.
Let's Encrypt och automatisering med ACME-protokollet är en gratis lektion i Cryptology Academy på CoddyKit. Detta är lektion 4 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Cryptology Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Cryptology Academy innehåller totalt 4 lektioner.
Introduktion till Let's Encrypt
Let's Encrypt är en kostnadsfri, automatiserad och öppen certifikatutfärdare som drivs av Internet Security Research Group (ISRG) och lanserades som offentlig betaversion i december 2015. Organisationen har utfärdat över 3 miljarder certifikat och har kraftigt ökat användningen av HTTPS på webben genom att undanröja kostnaden och komplexiteten i att skaffa offentligt betrodda TLS-certifikat.
Översikt över ACME-protokollet
Protokollet Automated Certificate Management Environment (ACME), som standardiserades som RFC 8555 år 2019, definierar hur klienter automatiskt bevisar att de äger en domän och tar emot certifikat från certifikatutfärdare (CA:er). ACME ersätter manuella processer för domänvalidering med ett kryptografiskt verifierat automatiserat utbyte, vilket möjliggör helt automatiserad hantering av certifikatens livscykel.
HTTP-01-utmaning
HTTP-01-utmaningen validerar domänägarskap genom att kräva att ACME-klienten placerar en specifik tokenfil på "http://DOMAIN/.well-known/acme-challenge/TOKEN". CA:n hämtar denna URL för att verifiera token. HTTP-01 är enkel att implementera, men kräver att port 80 är åtkomlig och kan inte användas för wildcardcertifikat.
DNS-01-utmaning
DNS-01-utmaningen validerar domänägarskap genom att kräva att ACME-klienten skapar en DNS TXT-post på "_acme-challenge.DOMAIN" med ett specifikt värde. CA:n frågar DNS för att verifiera posten. DNS-01 är den enda utmaningstyp som stöder utfärdande av wildcardcertifikat ("*.example.com") och fungerar även när webbservrar befinner sig bakom brandväggar.
TLS-ALPN-01-utmaning
TLS-ALPN-01-utmaningen validerar domänägarskap på TLS-lagret med hjälp av en anpassad ALPN-protokollidentifierare, "acme-tls/1". ACME-klienten tillhandahåller tillfälligt ett självsignerat certifikat med utmaningstoken i ett särskilt tillägg på port 443. Den här utmaningen fungerar utan en körande webbserver och stöder lastbalanserade miljöer.
Certbot som referensklient
Certbot är Electronic Frontier Foundations referensklient för ACME och Let's Encrypt. Den automatiserar hela certifikatets livscykel: domänvalidering, certifikatutgivning och automatisk förnyelse. Certbot innehåller pluginprogram för Apache och nginx som automatiskt konfigurerar TLS-inställningar. Installera via "snap install --classic certbot" på moderna Linux-distributioner.
Alternativa ACME-klienter
Det finns många ACME-klienter utöver Certbot, anpassade för olika användningsområden. acme.sh är en ACME-klient i form av ett rent skalskript som används ofta i resurssnåla miljöer. Webbservern Caddy har inbyggt ACME-stöd och förnyar certifikat automatiskt. Traefik, som används i containerbaserade miljöer, hanterar ACME via sin certificatesResolvers-konfiguration för containeriserade arbetsbelastningar.
Automatisering av certifikatförnyelse
Let's Encrypt-certifikat har medvetet en giltighetstid på 90 dagar för att uppmuntra till automatisering och minska den tid då komprometterade privata nycklar kan utnyttjas. Certbot installerar en systemd-timer eller ett cron-jobb som kör "certbot renew" två gånger per dygn och förnyar alla certifikat som löper ut inom 30 dagar. Manuell förnyelse är ett antimönster som leder till driftavbrott.
Let's Encrypts frekvensbegränsningar
Let's Encrypt tillämpar frekvensbegränsningar för att förhindra missbruk. De viktigaste begränsningarna är 50 certifikat per registrerad domän och vecka samt 5 identiska certifikat per vecka. Även misslyckade valideringsförsök begränsas (5 per värdnamn och timme). Under utveckling erbjuder Let's Encrypts staging-miljö obegränsad certifikatutgivning mot en test-CA som inte är offentligt betrodd.
Certifikat för flera domäner och wildcardcertifikat
Ett enda ACME-certifikat kan omfatta flera domäner (Subject Alternative Names). "certbot --domains example.com,www.example.com,api.example.com" utfärdar ett certifikat med tre SAN. Wildcardcertifikat ("*.example.com") kräver DNS-01-validering och omfattar alla underdomäner på en enda nivå. Wildcardcertifikat omfattar inte själva apex-domänen (example.com), så ytterligare ett SAN krävs.
ACME för intern PKI
ACME-protokollet är inte begränsat till Let's Encrypt. Interna certifikatutfärdare som Step-CA (smallstep), EJBCA och HashiCorp Vault kan exponera ACME-endpoints för intern certifikatautomatisering. Därmed kan samma automatiserade hantering av certifikatens livscykel som används för publika tjänster även tillämpas på intern mTLS-infrastruktur och privata tjänster.
Kontroll av ACME-utmaningar
Vilken typ av ACME-utmaning krävs för att utfärda ett wildcardcertifikat som "*.example.com"?
Lektionssammanfattning: Let's Encrypt och ACME
Let's Encrypt tillhandahåller kostnadsfria certifikat via ACME-protokollet (RFC 8555). HTTP-01-utmaningar fungerar för certifikat som inte är wildcardcertifikat på port 80. DNS-01 möjliggör wildcardcertifikat genom att bevisa kontroll över DNS-zonen. TLS-ALPN-01 fungerar utan en webbserver. Certbot och acme.sh automatiserar hela livscykeln. Certifikat med 90 dagars giltighet kräver automatisering. Frekvensbegränsningar gör det nödvändigt att använda staging-miljön under testning.
Lär dig Cryptology Academy med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 67
- Lektioner
- 261
Vanliga frågor
Är lektionen ”Let's Encrypt och automatisering med ACME-protokollet” gratis?
Ja – hela texten till ”Let's Encrypt och automatisering med ACME-protokollet” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Cryptology Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Cryptology Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”Let's Encrypt och automatisering med ACME-protokollet”?
Automatisera utfärdande och förnyelse av certifikat med ACME-protokollet, Certbot och andra klienter. Ni övar på Cryptology Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig Cryptology Academy?
Du behöver inga förkunskaper. Utbildningen i Cryptology Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.
Hur lång tid tar lektionen ”Let's Encrypt och automatisering med ACME-protokollet”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här Cryptology Academy-lektionen?
Ja. Varje Cryptology Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- Grunderna i OpenSSL på kommandoraden
- Skapa och hantera certifikatkedjor
- OCSP stapling och Certificate Transparency
- Let's Encrypt och automatisering med ACME-protokollet