ACME-validering: HTTP-01, DNS-01 og TLS-ALPN-01
ACME-protokollen (RFC 8555) definerer tre metoder til at bevise domænekontrol. Denne guide forklarer hvornår man bruger hvilken, sikkerhedsovervejelser, og hvordan DNS-delegation og FairSSL AutoDNS forenkler opsætningen.
Tre valideringsmetoder
Når du bestiller et certifikat via ACME, skal CA'en verificere at du kontrollerer domænet. Det sker via en af tre challenge-typer. CA'en sender en challenge, din ACME-klient besvarer den, og CA'en verificerer svaret.
| Metode | Hvad bevises | Port | Wildcards | Bag firewall |
|---|---|---|---|---|
| HTTP-01 | HTTP-adgang til domænet | 80 (TCP) | Nej | Nej |
| DNS-01 | Kontrol over DNS-zone | Ingen | Ja | Ja |
| TLS-ALPN-01 | TLS-kontrol over domænet | 443 (TCP) | Nej | Nej |
HTTP-01: fil på port 80
CA'en giver din ACME-klient et token. Klienten placerer en fil med tokenet under
http://jeres-domæne/.well-known/acme-challenge/TOKEN. CA'en henter filen via HTTP (port 80) og verificerer indholdet.
Sådan fungerer det
- 1 ACME-klienten anmoder om et certifikat for
www.example.dk - 2 CA'en returnerer et token (tilfældig streng)
- 3 Klienten placerer filen under
/.well-known/acme-challenge/ - 4 CA'en henter
http://www.example.dk/.well-known/acme-challenge/TOKEN - 5 Indhold matches? Certifikat udstedes.
Vigtige begrænsninger
Ingen redirects. CA'en følger ikke HTTP-til-HTTPS redirects under validering. Hvis IIS eller Nginx omdirigerer al trafik fra port 80 til 443, fejler valideringen. Deaktivér redirect-regler for /.well-known/acme-challenge/ stien.
Alle SAN-navne skal svare. Har certifikatet 5 domænenavne (SAN), skal alle 5 besvare HTTP-01 fra samme server. Ét domæne der peger et andet sted, og hele valideringen fejler.
Load balancers. Bag en load balancer skal filen være tilgængelig på alle backend-servere, eller load balanceren skal route /.well-known/acme-challenge/ til den server der kører ACME-klienten.
HTTP-01 er den enkleste metode til single-server setups hvor port 80 er tilgængelig. Til alt andet anbefaler vi DNS-01.
DNS-01: TXT-record i DNS
DNS-01 er den mest fleksible valideringsmetode. ACME-klienten opretter en TXT-record _acme-challenge.jeres-domæne
i jeres DNS-zone. CA'en slår recorden op via DNS og verificerer indholdet. Ingen porte skal åbnes, og serveren behøver ikke eksponeres mod internet.
Sådan fungerer DNS-01
- 1 ACME-klienten anmoder om certifikat og modtager et token fra CA'en
- 2 Klienten beregner en SHA-256 hash af tokenet og account key
- 3 Klienten opretter TXT-recorden:
_acme-challenge.example.dk TXT "hashet-token-værdi" - 4 CA'en laver DNS-lookup (fra flere geografiske lokationer via MPIC)
- 5 TXT-record matcher? Certifikat udstedes. Klienten rydder op (fjerner TXT-recorden).
Eksempel: DNS-01 opslag
# Tjek om TXT-recorden er oprettet korrekt nslookup -type=TXT _acme-challenge.example.dk _acme-challenge.example.dk text = "gfj9Xq...Rg85nM" # På Linux/Mac dig TXT _acme-challenge.example.dk +short "gfj9Xq...Rg85nM"
TTL og propagation
TXT-recorden skal propagere til CA'ens DNS-resolvere, før valideringen kan gennemføres. Kort TTL giver hurtigere propagation og hurtigere oprydning efter validering.
Anbefaling: Sæt TTL på _acme-challenge records til 60 sekunder eller lavere.
De fleste ACME-klienter venter 30 sekunder efter oprettelse (konfigurerbart). Med 47-dages certifikater fra 2029
sker validering hyppigere, og kort TTL sikrer hurtig propagation hver gang.
DNS CNAME-delegation (FairSSL AutoDNS)
Uden delegation kræver DNS-01 at ACME-klienten har fuld adgang til jeres DNS API. Det betyder API-nøgler til jeres primære DNS-udbyder på hver server der skal forny certifikater. Hvis én server kompromitteres, har angriberen adgang til at ændre alle DNS-records for jeres domæne.
CNAME-delegation eliminerer den risiko. I opretter en CNAME-record der peger _acme-challenge
til en separat valideringszone, dedikeret til certifikatvalidering. Serveren har kun adgang til den zone,
ikke til jeres primære DNS. Med FairSSL AutoDNS
behøver I ikke engang den zone: FairSSL håndterer den for jer.
Hvordan det virker
CA'en følger CNAME-kæden automatisk. Den slår _acme-challenge.jeres-domæne op,
ser CNAME'en, følger den til valideringszonen, og finder TXT-recorden der. Jeres primære DNS-zone
er aldrig involveret ud over den ene permanente CNAME.
Eksempel: CNAME-delegation
1. Opret CNAME (engangsopsætning i jeres DNS)
_dnsauth.example.dk CNAME dit-unikke-id.autodns.fairssl.dk.
2. Ved validering opretter FairSSL TXT-recorden
dit-unikke-id.autodns.fairssl.dk TXT "valideringstoken"
3. CA'en resolver kæden
# CA slår op: _acme-challenge.example.dk # → CNAME → dit-unikke-id.autodns.fairssl.dk # → TXT "hashet-token" ✓
Fordele ved delegation
- Ingen DNS API-nøgler på serveren
- Kompromitteret server kan ikke ændre jeres DNS
- Virker med alle DNS-udbydere (også dem uden API)
- CNAME oprettes én gang, derefter automatisk
FairSSL AutoDNS
FairSSL AutoDNS er CNAME-delegation som managed service. I opretter én CNAME-record, og FairSSL håndterer alle TXT-records automatisk ved hver validering. Ingen scripts, ingen API-nøgler, ingen manuel opsætning.
acme-dns: self-hosted alternativ
acme-dns er et open source-projekt der kører jeres egen valideringszone. Simple-acme, Lego og Certbot har alle indbygget acme-dns support. Ulempen er at I selv står for drift og overvågning af DNS-serveren.
TLS-ALPN-01: certifikat på port 443
TLS-ALPN-01 (RFC 8737) er den nyeste valideringsmetode. ACME-klienten præsenterer et selvunderskrevet certifikat med en speciel ALPN-extension på port 443. CA'en laver en TLS-forbindelse og verificerer certifikatet.
Metoden blev introduceret som alternativ til den oprindelige TLS-SNI challenge, der blev trukket tilbage i 2018 på grund af sikkerhedsproblemer med delte hosting-miljøer.
Begrænset anvendelse i praksis. TLS-ALPN-01 kræver at ACME-klienten midlertidigt kontrollerer port 443. Det betyder typisk at webserveren skal stoppes under validering, hvilket giver nedetid. I simple-acme bruges selfhosting-mode, der binder port 443 direkte. Hovedanvendelsen er servere hvor port 80 er blokeret af policy, men port 443 er tilgængelig. Til de fleste scenarier er DNS-01 et bedre valg.
Hvilken metode skal jeg bruge?
Én webserver, port 80 åben
Brug HTTP-01 hvis serveren allerede er tilgængelig fra internettet på port 80.
Det er den enkleste opsætning. Vær opmærksom på at alle SAN-navne i certifikatet skal pege på serveren,
og at HTTP-til-HTTPS redirect-regler skal undtage /.well-known/acme-challenge/.
Ulovlige redirects på den sti får valideringen til at fejle.
Bag firewall, load balancer, eller wildcard
Brug DNS-01. Ingen porte nødvendige, virker bag enhver firewall-konfiguration. Med FairSSL AutoDNS behøver I ikke engang DNS API-adgang.
Flere servere / webfarm
Brug DNS-01. HTTP-01 kræver at alle servere serverer challenge-filen, hvilket er besværligt i en webfarm. DNS-01 med CNAME-delegation kører fra én central server.
Netværksudstyr (firewalls, load balancers)
Brug DNS-01 fra en eksisterende server. Netværksenheder kan ikke køre ACME-klienter, så en central server håndterer validering og deployer certifikater via API/script. Se ACME-klienter for opsætningsstrategi.
Port 80 blokeret, port 443 tilgængelig, ingen DNS-adgang
Brug TLS-ALPN-01. Sjældent scenarie, men det eneste valg når HTTP er utilgængeligt og DNS-delegation ikke er mulig.
Fejlfinding af valideringsproblemer
DNS-01: "Timeout waiting for DNS propagation"
TXT-recorden er ikke synlig for CA'en endnu. Tjek manuelt med nslookup -type=TXT _acme-challenge.jeres-domæne 8.8.8.8
(brug en ekstern DNS-resolver, ikke jeres lokale). Typiske årsager: for høj TTL på eksisterende records, DNS-udbyder med langsom propagation,
eller forkert zonefil. Øg DnsPropagationDelay i klientens konfiguration.
DNS-01: "Incorrect TXT record" (CNAME-delegation)
CNAME-recorden peger forkert. Tjek: nslookup -type=CNAME _acme-challenge.jeres-domæne. Den skal returnere det korrekte
delegations-mål. CNAME kan ikke sameksistere med andre records på samme navn. Hvis I har en eksisterende TXT-record
på _acme-challenge, slet den før I opretter CNAME.
HTTP-01: "Invalid response from [domæne]"
CA'en kan ikke hente challenge-filen. Mulige årsager: firewall blokerer port 80,
domænet peger på forkert IP (typisk efter DNS-ændring), eller webserveren returnerer en fejlside i stedet for challenge-filen.
Test lokalt: curl -v http://jeres-domæne/.well-known/acme-challenge/test.
HTTP-01: Redirect på challenge-stien
Mange webservere har en global HTTP-til-HTTPS redirect. Den fanger også requests til
/.well-known/acme-challenge/, og CA'en afviser redirects på challenge-stien.
Sørg for at jeres redirect-regel undtager den sti. I IIS: tilføj en URL Rewrite condition.
I Nginx: placer location /.well-known/acme-challenge/ blokken før redirect-reglen.
HTTP-01: Ikke alle SAN-navne validerer
HTTP-01 validerer hvert SAN-navn individuelt. Hvis certifikatet indeholder fairssl.dk
og www.fairssl.dk, skal begge navne svare på port 80 med challenge-filen.
Hvis www redirecter til apex-domænet (eller omvendt), fejler valideringen for det navn.
Brug DNS-01 i stedet, hvis I har SAN-navne der ikke alle peger på samme server.
CAA-record blokerer
Fejlmeddelelse der nævner "CAA" betyder at jeres CAA DNS-records ikke tillader den CA, der udsteder certifikatet.
FairSSL bruger DigiCert (digicert.com), GlobalSign (globalsign.com) og Sectigo (sectigo.com).
Brug vores CAA Record Generator
til at generere korrekte records. Har I ingen CAA-records, er alle CA'er tilladt.
MPIC-fejl: validering fra én lokation, men ikke andre
Fra marts 2025 verificerer CA'er fra flere geografiske lokationer (MPIC). Hvis DNS eller HTTP svarer korrekt fra én lokation, men ikke fra andre, kan det skyldes geo-DNS, CDN-konfiguration der blokerer visse regioner, eller asymmetrisk routing. Sørg for at valideringsresponsen er tilgængelig globalt, ikke kun fra jeres lokale netværk.
Relateret indhold
FairSSL AutoDNS
Automatisk DNS-validering med permanent CNAME. Ingen DNS API-nøgler.
Simple-ACME guide
Komplet Windows-guide med DNS-validering, IIS og Task Scheduler.
CAA Record Generator
Generér CAA DNS-records der kontrollerer hvilke CA'er der må udstede certifikater.
ACME-klienter
Sammenligning af alle anbefalede ACME-klienter med DNS-validering support.
Domænevalidering
Ikke-ACME domænevalidering: e-mail, DNS TXT, HTTP-fil for DV-certifikater.
Hvad er SSL?
Certifikatkæder, CAA records, HSTS og andre sikkerhedstiltag.
Ofte stillede spørgsmål om ACME-validering
Find svar på de mest almindelige spørgsmål om SSL certifikater og FairSSL.
_acme-challenge.jeres-domæne til en valideringsservice (f.eks. FairSSL AutoDNS eller acme-dns). Serveren rører aldrig jeres DNS-zone direkte. Selv en kompromitteret server kan ikke ændre jeres DNS-records.dig CAA jeres-domæne og sørg for at de tilladte CA'er inkluderer dem, FairSSL bruger (DigiCert, GlobalSign, Sectigo). Brug vores CAA Record Generator til at generere korrekte records.Kom i gang med SSL-automatisering
Opret en gratis konto og udsted dit første certifikat på under 10 minutter.