SSL-certifikater kan højst være gyldige i 199 dage. Senest 15-03-2027 bliver grænsen 99 dage, for DigiCert-certifikater allerede fra 24-02-2027. Læs mere →

Vej 1 · Gratis ACME · Gør det selv

Gratis SSL-certifikater med ACME: guide til opsætning og drift

Gratis SSL-certifikater løser udstedelsen. I skal stadig holde fornyelse, installation og overvågning i drift. Vælg en CA, begræns adgangen til DNS, og test hele vejen frem til den tjeneste, der bruger SSL-certifikatet.

Vælg den, når
jeres servere og udstyr har indbygget ACME, der selv fornyer og selv melder fejl, eller når I har en tekniker, der kan bygge og vedligeholde scripts. Certifikaterne er gratis, og I vælger selv CA, klient og valideringsmetode per server.
Passer ikke længere, når
hver server ender med sin egen løsning, dokumentation og overvågning ikke følger med, og der ikke er noget centralt sted, der viser, hvordan det hele er sat op og kører. Timerne til at udvikle scripts, opdatere dem og sætte nye servere op løber hurtigt op, når miljøet vokser.

Sådan virker ACME

ACME er protokollen mellem jeres klient og en CA. Klienten bestiller SSL-certifikatet og beviser kontrollen over navnene. Installation i den rigtige tjeneste er et særskilt trin.

RFC 8555: ACME beskriver forløbet: account opretter ACME-kontoen; order bestiller navnene; authorization angiver, hvad der skal godkendes; challenge beviser domænekontrollen; finalize sender en CSR; certificate giver klienten det udstedte SSL-certifikat.

ARI (ACME Renewal Information, RFC 9773) lader CA’en foreslå et fornyelsesvindue. Klienten skal stadig køre regelmæssigt og installere resultatet. Læs om ACME-protokollens forløb fra bestilling til fornyelse.

Vælg en gratis CA

Vælg CA efter jeres valideringsmetode og drift. Opret den nødvendige konto, læs CA’ens vilkår, og tillad den i jeres CAA-records.

Gratis CA’er til SSL-certifikater med ACME
CAHvad skal I vide?
Google Trust Services (anbefalet)Lidt mere at sætte op første gang: en Google Cloud-konto, et projekt og en EAB-nøgle. Til gengæld giver dns-persist-01 den mest sikre validering, fordi serverne ikke skal have DNS-API-credentials. Opsætning · dns-persist-01
Let's Encrypt (mest populære)Kræver validering med http-01 eller dns-01. Kan man let åbne port 80, virker det fint for de fleste. Med dns-01 skal serverne have DNS-API-credentials, helst kun til en separat valideringszone (se Domænevalidering). Har rate limits på dubletter. Kom i gang · Udbredelse · Rate limits
ZeroSSLKræver en konto. ACME og EAB
Actalis (EU)Et godt valg, når EU kommer først. Kun ét FQDN pr. certifikat, men gratis. ACME-vejledning · Gratis plan · Europæisk CA

Let’s Encrypt-kontoen oprettes af ACME-klienten. Tabellen fremhæver http-01 og dns-01; Let’s Encrypt understøtter også tls-alpn-01.

Google Trust Services kræver en Google Cloud-konto og et projekt med Public CA API aktiveret. Opret en EAB-nøgle (External Account Binding), og brug den til at knytte ACME-kontoen til projektet. Projektets ACME-konti deler Public CA-kvoter. ZeroSSL kræver også EAB-oplysninger; deres gratis ACME-tjeneste er adskilt fra de øvrige API-produkter.

En CAA-record begrænser, hvilke CA’er der må udstede. Tillad jeres valgte CA med issue, og tjek issuewild for wildcards. CAA-reglerne og FairSSL’s CAA-generator til den rigtige DNS-record hjælper med opsætningen.

Rate limits for udstedelse

Efterhånden som certifikaternes levetid bliver kortere, rammer rate limits hårdere, fordi I udsteder oftere. Grænserne betyder mest, når I udsteder mange nye certifikater på én gang, fx når et nyt miljø kommer med, når I skifter CA, eller når I gendanner servere fra backup. Et certifikat, der flytter fra en anden CA, tæller som nyt hos den nye CA.

Grænser hos de gratis CA’er
CAGrænser for udstedelse og valideringNavne pr. certifikatKilde
Google Trust Services
  • 100 nye certifikatbestillinger (newOrder) pr. time.
  • 300 nye authorizations pr. time.
  • Grænserne gælder pr. Google Cloud-projekt og deles af alle ACME-konti i projektet. Hver EAB-nøgle hører til ét projekt, så I får mere kapacitet ved at fordele på flere projekter.
  • Klienten skal kunne håndtere HTTP 429 og Retry-After.
  • Staging har samme grænser.
Ikke oplystGoogle Cloud: kvoter · Google: EAB og projekt
Opdateret 28-10-2026. Senest tjekket 07-11-2026.
Let's Encrypt
  • 50 certifikater pr. registreret domæne pr. 7 dage. Grænsen gælder på tværs af alle konti.
  • 5 certifikater med præcis de samme navne pr. 7 dage. Grænsen gælder på tværs af alle konti. Rammes typisk, når klienten installeres igen, dens konfiguration slettes, eller en server gendannes fra backup uden ACME-konfigurationen og udsteder igen. Tag ACME-konfigurationen med i backuppen.
  • 300 nye ordrer pr. ACME-konto pr. 3 timer.
  • 5 fejlede valideringer pr. navn pr. konto pr. time.
  • Fornyelser med ARI er undtaget fra alle Let’s Encrypts grænser. En fornyelse uden ARI af præcis de samme navne er kun undtaget fra grænserne pr. konto og pr. registreret domæne.
  • Brug staging, når I tester.
Op til 100 navne (FQDN eller IP) pr. certifikat, afhængigt af den valgte certifikatprofil.Let's Encrypt: rate limits
Opdateret 05-08-2026. Senest tjekket 07-11-2026.
ZeroSSL
  • Et godt valg, når I har brug for høje grænser. ZeroSSL har ingen faste grænser for ACME, men en fair usage policy, og de kan begrænse misbrug.
Ikke oplystZeroSSL: ACME
Senest tjekket 07-11-2026.
Actalis
  • Et godt valg, når EU kommer først, eller når I har brug for høje grænser og kan nøjes med ét FQDN pr. certifikat. Actalis har ingen offentliggjorte grænser for ACME, og certifikater med ét navn og 90 dages levetid er ubegrænsede, også på gratisplanen. Certifikater med flere navne tæller mod det, planen indeholder.
1 FQDNActalis: gratis plan · Actalis: ACME · Actalis: europæisk CA
Senest tjekket 07-11-2026.

Planlægger I mange nye certifikater, så fordel dem på flere konti eller projekter, hvor grænsen gælder pr. konto. Opsæt en ekstra CA på forhånd, og tilføj den i jeres CAA-records, så I kan skifte uden at vente.

Domænevalidering

Vælg en metode, som både CA og klient understøtter. Brug DNS-validering til wildcards og interne servere med offentlige domænenavne. Begræns klientens DNS-rettigheder til valideringen.

http-01: Klienten lægger et svar på http://<name>/.well-known/acme-challenge/<token>. CA’en henter det over port 80. Metoden kan ikke validere wildcards. En intern server kan kun bruge metoden, hvis et offentligt tilgængeligt HTTP-system besvarer udfordringen for navnet.

dns-01: Klienten lægger en TXT-record på _acme-challenge.<name>. Til *.example.com bruges _acme-challenge.example.com. CA’en læser offentlig DNS; selve tjenesten kan være intern. Let’s Encrypts forklaring af HTTP- og DNS-validering.

tls-alpn-01: CA’en forbinder til port 443 og beder om acme-tls/1 via ALPN. En responder viser et særligt, midlertidigt SSL-certifikat som bevis. Jeres TLS-terminering skal understøtte metoden. RFC 8737: tls-alpn-01.

Sammenlign ACME-validering
MetodeIndgående port på tjenestenWildcardIntern serverHvad skal køre hos jer?
http-0180NejKun med offentlig HTTP-responderKlient med adgang til webroot eller HTTP-responder
dns-01Ingen; CA’en spørger offentlig DNSJaJa, med offentligt DNS-navnKlient med DNS-plugin og begrænset DNS-API-adgang
tls-alpn-01443NejKun med offentlig TLS-responderKlient/responder med acme-tls/1 i TLS-termineringen
dns-persist-01Ingen; CA’en spørger offentlig DNSJa, med CA’ens policyJa, med offentligt DNS-navnKompatibel klient, ACME-kontonøgle og vedvarende TXT-record
Valideringsforløbet i ACME

Klienten publicerer beviset. CA’en kontrollerer det. Installation følger efter udstedelsen.

Valideringsforløbet i ACME Klienten bestiller hos CA’en og publicerer et challenge-svar. CA’en læser svaret via HTTP, DNS eller TLS. Efter godkendelse sender klienten en CSR og henter SSL-certifikatet. 1 Klient → CA: order 2 Klient: publicér svar 3 CA: kontrollér svaret 4 CSR → SSL-certifikat

Begræns DNS-API-adgangen med en valideringszone

DNS-plugin bruger API-oplysninger til at oprette og rydde TXT-records. Med en klient på hver server får hver server adgangsoplysninger til DNS. En lækket nøgle kan ændre alt, dens rettigheder tillader. Giv derfor ikke klienten adgang til hele domænets zone.

Opret en separat valideringszone (challenge zone). Lav en CNAME viderestilling fra _acme-challenge til et navn i valideringszonen, og giv kun klienten skriveret dér. CA’en følger CNAME til TXT-recorden. Klienten eller DNS-plugin skal også kunne skrive til målet; en CNAME flytter ikke automatisk klientens API-kald. Hvert SAN-navn kan kræve sin egen viderestilling.

DNS-validering i en valideringszone (challenge zone)

CNAME bliver i domænets zone. Klienten skriver kun challenge-værdier i valideringszonen.

DNS-validering i en valideringszone (challenge zone) Domænets _acme-challenge er en CNAME til en TXT-record i acme.example.net. Klienten har kun API-skriveret i valideringszonen. CA’en følger CNAME og læser TXT. Domænets zone _acme-challenge.example.com CNAME Valideringszone (challenge zone) example-com.acme.example.net TXT Kun skriveret her ACME-klient
DNS-eksempel: CNAME og TXT i hver sin zone

Første record ligger i example.com. Anden ligger i valideringszonen acme.example.net. Erstat navnene og lad klienten sætte den aktuelle challenge-værdi. CNAME bliver stående; TXT-værdien skifter ved nye dns-01-valideringer.

_acme-challenge.example.com. 300 IN CNAME example-com.acme.example.net.
example-com.acme.example.net. 300 IN TXT "<challenge-value>"

dns-persist-01 hos Google

dns-persist-01 bruger én vedvarende TXT-record på _validation-persist, som knytter domænet til CA’en og ACME-kontoen, så klienten ikke skal skrive en ny TXT-værdi ved hver fornyelse. IETF-udkastet er i version -02 fra 20-09-2026. Google Trust Services understøtter det i dag og kræver EAB. Let’s Encrypt har det ikke endnu, men det er planlagt. GlobalSign har det planlagt i 2027. ZeroSSL og Sectigo ACME understøtter det ikke. Følg Googles dns-persist-01-format og krav til klienten.

Recorden er bundet til én ACME-konto. Har hver server sin egen ACME-klient og konto, skal domænet have én TXT-record pr. server under _validation-persist. Deler serverne én konto, er én record nok, men så kan alle servere udstede for alle domænerne og tilbagekalde alle certifikaterne. Opret aldrig en ny konto på en server, der allerede bruger dns-persist-01. Skift nøglen i stedet, så recorden fortsat gælder. Google: ACME-konti og dns-persist-01

Hos FairSSL virker dns-persist med DigiCert-certifikaterne og kræver jeres egen DigiCert-konto; på den fælles konto validerer AutoDNS i stedet. Læs mere i dns-persist-01 med DigiCert: én DNS-record, og alle navne er godkendt på forhånd og dns-persist-01 i sslbrain: uden DNS-nøgler på serverne. Ved klassisk dns-01 kan I følge vores vejledning til DNS-plugin og ACME DNS-validering.

Konfiguration, klient og ARI

Vælg fornyelsestidspunkt, nøgletype og SAN-navne efter de systemer, der skal bruge SSL-certifikatet. Test mod staging, og opret et planlagt job med installation efter vellykket fornyelse.

Brug kun de SAN-navne, tjenesten har brug for. Vælg RSA eller ECDSA efter klienternes og tjenestens understøttelse. Lad en aktuel ACME-klient følge ARI, og kontrollér dens fornyelsesjob. En fast kalenderdato passer ikke nødvendigvis til næste SSL-certifikats gyldighed.

SSL-certifikaternes levetid falder. Tidslinjen viser de samme levetider som resten af sitet: højst 199 dage nu og 99 dage senest 15-03-2027. DigiCert skifter 24-02-2027. Gratis CA’er kan udstede kortere SSL-certifikater. Manuel fornyelse er ikke en driftsplan.

15-03-2026 · Nu
199 dage
15-03-2027
99 dage
15-03-2029
46 dage

ARI giver et anbefalet fornyelsesvindue, også når en CA ønsker tidlig fornyelse. Klienterne her dokumenterer ARI. Vores vejledninger viser klientopsætning; tilpas CA-adresse og EAB, når I bruger en gratis CA.

win-acme eller simple-acme?

simple-acme er en videreførelse fra samme udvikler og beskrives som en bagudkompatibel erstatning for win-acme. Projektets egen forklaring og installationsvejledningen med wacs.exe beskriver overgangen. Brug vores simple-acme-vejledning til SSL-certifikater på Windows.

Posh-ACME: hvad styrer fornyelsestidspunktet?

Søgningen “renewaldays posh-acme” blander klienternes indstillinger. RenewalDays er en win-acme/simple-acme-indstilling, ikke en parameter til Submit-Renewal. Posh-ACME bruger RenewAfter på ordren. ARI kan opdatere tidspunktet, når CA’en understøtter det. Posh-ACME kontrollerer RenewAfter før fornyelse.

Planlæg Submit-Renewal regelmæssigt under samme bruger og konfiguration som ved opsætningen. Et job starter ikke sig selv, fordi RenewAfter er nået. -Force omgår tidskontrollen og bør ikke bruges som normal fornyelsesplan. Se Submit-Renewal-dokumentationen og Windows-opsætning med planlagte ACME-job.

Kommandoer mod Let’s Encrypt staging

Installér klienten først. Erstat example.com, mailadresse og stier med jeres egne. HTTP-eksemplerne kræver en eksisterende webroot, der kan nås på port 80; brug en testserver. Staging udsteder SSL-certifikater uden offentlig tillid. Gem dem separat, og bind dem ikke til produktion.

simple-acme · PowerShell · http-01

Kør fra installationsmappen. Den eksisterende webroot skal kunne vise challenge-filer. PEM-filerne gemmes i testmappen; --installation none ændrer ingen IIS-binding.

New-Item -ItemType Directory -Force C:\acme-staging
.\wacs.exe --source manual --host example.com --validation filesystem --webroot C:\inetpub\wwwroot --store pemfiles --pemfilespath C:\acme-staging --installation none --baseuri https://acme-staging-v02.api.letsencrypt.org/ --accepttos --emailaddress admin@example.com
Certbot · shell · http-01

certonly henter SSL-certifikatet uden at installere det. Testkonfiguration, arbejdsfiler og logs gemmes separat.

sudo certbot certonly --webroot -w /var/www/html -d example.com \
  --server https://acme-staging-v02.api.letsencrypt.org/directory \
  --config-dir /etc/letsencrypt-staging --work-dir /var/lib/letsencrypt-staging \
  --logs-dir /var/log/letsencrypt-staging --agree-tos --email admin@example.com
lego v4 · shell · http-01

Eksemplet bruger lego v4’s dokumenterede flag og en separat mappe. Klienten skriver challenge-filen i jeres eksisterende webroot.

lego --server https://acme-staging-v02.api.letsencrypt.org/directory \
  --path ./lego-staging --email admin@example.com --accept-tos \
  --domains example.com --http --http.webroot /var/www/html run
acme.sh · shell · http-01

Vælg CA eksplicit. letsencrypt_test er staging. Brug senere --install-cert og en passende --reloadcmd til produktion; tjenesten skal ikke læse direkte fra klientens interne lager.

acme.sh --register-account --server letsencrypt_test --config-home ./acme-staging --accountemail admin@example.com
acme.sh --issue --server letsencrypt_test --config-home ./acme-staging \
  -d example.com --webroot /var/www/html
Posh-ACME · PowerShell · dns-01

Dette eksempel kræver DNS hos Cloudflare og en API-token med Zone:DNS:Edit for den relevante zone. Indtast token ved prompten. Til andre DNS-udbydere vælger I deres plugin. Submit-Renewal kan springe over, når ordren endnu ikke skal fornyes.

Set-PAServer LE_STAGE
$pArgs = @{ CFToken = (Read-Host 'Cloudflare API token' -AsSecureString) }
New-PACertificate example.com -AcceptTOS -Contact admin@example.com -Plugin Cloudflare -PluginArgs $pArgs
Get-PAOrder | Select-Object MainDomain, RenewAfter
Submit-Renewal

Når staging virker, opret en separat produktionsopsætning hos Let’s Encrypt. Brug CA’ens produktionsadresse i klienten, eller letsencrypt i acme.sh og LE_PROD i Posh-ACME. Test det planlagte job og installationsscriptet med de samme rettigheder, som de får i drift.

Installation af SSL-certifikatet

Installér SSL-certifikat, kæde og privat nøgle, hvor tjenesten forventer dem. Genindlæs konfigurationen eller genstart tjenesten som krævet, og kontrollér det SSL-certifikat, den faktisk viser.

Et vellykket ACME-job er ikke bevis for en vellykket installation. Brug klientens installationsfunktion eller et script efter fornyelse. Tilpas filformat, rettigheder og bindinger efter vejledningen til jeres server eller appliance.

Overvågning af SSL-certifikater

Hold en oversigt over SSL-certifikater, navne, servere og ansvarlige. Overvåg både fornyelsesjobbet og det SSL-certifikat, tjenesten faktisk viser. Send fejl til en ansvarlig, der kan reagere.

Let’s Encrypt stoppede udløbsmails 4. juni 2025. Et job kan forny korrekt, mens en tjeneste fortsat bruger en gammel fil eller binding. Kontrollér derfor udløb og navne på hver destination.

Kontrollér SSL-certifikatet på tjenesten

Kør fra et netværk, som kan nå tjenesten. Brug det rigtige værtsnavn som SNI. Gennemgå navne, kæde og gyldighed i svaret; denne manuelle kontrol erstatter ikke løbende overvågning.

openssl s_client -connect example.com:443 -servername example.com -showcerts </dev/null
openssl s_client -connect example.com:443 -servername example.com </dev/null | openssl x509 -noout -subject -issuer -dates -ext subjectAltName

En gratis FairSSL-konto giver CT-log-overvågning af jeres domæner uden agent eller installation. Slå udløbsadvarsler til for de fundne SSL-certifikater. CT-logs viser udstedelser, ikke hvad hver server bruger; et nyt SSL-certifikat til samme navne kan erstatte det gamle i overvågningen. Behold derfor også kontrol af hver tjeneste.

Fejlsøgning og planen for, når noget går i stykker

Aftal, hvem der reagerer på fejl, og hvordan I retter DNS, rettigheder, klienter og installationer. Gem logs et sted, de ansvarlige kan læse dem, også når serveren ikke svarer.

Kan ét navn i et SAN-SSL-certifikat ikke længere valideres, kan fornyelsen fejle for hele SSL-certifikatet. Fjern navne, I ikke længere bruger, og tjek alle navne efter domæneændringer. Hav en plan for at udstede og installere igen fra en fungerende maskine.

“domain validation failed (dns01)”

  • Læs det præcise navn og den forventede TXT-værdi i klientens log. Spørg alle autoritative navneservere; et svar fra jeres lokale resolver kan være cachet.
  • Tjek DNS-propagation og TTL. Vent på, at ændringen er synlig hos de autoritative servere og gamle svar er udløbet i caches, før I prøver igen.
  • Følg CNAME til den rigtige zone. Tjek, at DNS-plugin skriver i målzonen og ikke i en privat DNS-zone eller på et forkert navn.
  • Ryd forældede TXT-værdier. Fjern ikke værdier, som andre aktive valideringer bruger; samtidige ordrer kan kræve forskellige værdier på samme navn.
  • Tjek CAA og issuewild for den valgte CA. Ved rate limits skal I følge fejlens retry-tid og bruge staging til fejlsøgning. Gentagne forsøg løser ikke en forkert DNS-record.
Slå CNAME, TXT og CAA op med dig / nslookup

Brug de faktiske autoritative navneservere fra NS-opslaget i stedet for ns1.example.com og ns1.example.net, og gentag mod hver af dem. Eksemplet følger valideringszonen ovenfor. Uden CNAME spørger I direkte efter TXT på _acme-challenge.example.com.

dig +short NS example.com
dig @ns1.example.com _acme-challenge.example.com CNAME +noall +answer
dig +short NS acme.example.net
dig @ns1.example.net example-com.acme.example.net TXT +noall +answer
nslookup -type=TXT example-com.acme.example.net ns1.example.net
dig @ns1.example.com example.com CAA +noall +answer

Når http-01 fejler

Tjek port 80 i firewall og NAT, og at A/AAAA peger på den rigtige server. Kontrollér, at webroot svarer til det berørte værtsnavn. Prøv challenge-URL’en udefra med den aktuelle token, mens valideringen afventer. Redirects må ikke sende CA’en til login, en forkert sti eller en utilgængelig vært. Let’s Encrypt beskriver de tilladte redirects.

Undersøg HTTP-svar og redirects

Erstat TOKEN med filnavnet fra klientens log. Første kommando viser det første svar; anden følger redirects. Indholdet skal være det forventede challenge-svar, ikke en HTML-fejlside.

curl -v --max-time 15 http://example.com/.well-known/acme-challenge/TOKEN
curl -vL --max-redirs 10 --max-time 30 http://example.com/.well-known/acme-challenge/TOKEN

Dokumentér hver servers opsætning

Skriv klient og version, CA og ACME-konto, valideringsmetode, DNS-zone, fornyelsesjob, filstier og installationskommandoer ned. Notér også, hvor den private nøgle ligger, og hvem der har adgang.

Tag en beskyttet backup af ACME-kontonøglen og den nødvendige konfiguration. Kontonøglen er ikke SSL-certifikatets private nøgle. Notér ejer, alarmer og proceduren for gendannelse. De ansvarlige skal kunne finde dokumentationen og gendanne opsætningen.

Spørgsmål om gratis SSL-certifikater og ACME

Kan jeg få gratis SSL-certifikater med ACME?

Ja. Let’s Encrypt, Google Trust Services, ZeroSSL og Actalis tilbyder gratis ACME-udstedelse med forskellige krav. I skal stadig sørge for fornyelse, installation og overvågning.

Kan ACME bruges til en intern server?

Ja, med et offentligt domænenavn og offentlig DNS-validering. dns-01 kræver ingen indgående port på tjenesten. http-01 og tls-alpn-01 kræver en offentligt tilgængelig responder.

Hvad er forskellen på win-acme og simple-acme?

simple-acme er en videreførelse fra samme udvikler. Projektet beskriver det som en bagudkompatibel erstatning for win-acme. Se projektets installationsvejledning og vores Windows-guide før overgangen.

Styrer RenewalDays fornyelse i Posh-ACME?

Nej. Posh-ACME kontrollerer ordrens RenewAfter ved Submit-Renewal. ARI kan opdatere tidspunktet. I skal selv planlægge kørslen; -Force omgår tidskontrollen. RenewalDays er en indstilling i win-acme/simple-acme.

Hvorfor fejler dns-01-validering?

Kontrollér TXT-værdien hos de autoritative navneservere, DNS-propagation og TTL, CNAME-målet, pluginens zone og gamle TXT-records. Tjek også CAA og CA’ens rate limits. Brug klientens log til at finde det navn, der fejler.

Er CT-log-overvågning nok til at finde et udløbet SSL-certifikat?

Nej. CT-logs viser udstedelser. De viser ikke, hvilket SSL-certifikat tjenesten faktisk bruger. Overvåg både fornyelsesjobbet og SSL-certifikatet på hver destination.

Kilder og officiel dokumentation

Senest opdateret:

Se de andre veje til SSL-certifikatautomatisering