SSL-certifikaternes maksimale levetid reduceres til 200 dage fra marts 2026. Læs mere →

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. 1 ACME-klienten anmoder om et certifikat for www.example.dk
  2. 2 CA'en returnerer et token (tilfældig streng)
  3. 3 Klienten placerer filen under /.well-known/acme-challenge/
  4. 4 CA'en henter http://www.example.dk/.well-known/acme-challenge/TOKEN
  5. 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. 1 ACME-klienten anmoder om certifikat og modtager et token fra CA'en
  2. 2 Klienten beregner en SHA-256 hash af tokenet og account key
  3. 3 Klienten opretter TXT-recorden: _acme-challenge.example.dk TXT "hashet-token-værdi"
  4. 4 CA'en laver DNS-lookup (fra flere geografiske lokationer via MPIC)
  5. 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?

1.

É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.

2.

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.

3.

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.

4.

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.

5.

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.

Ofte stillede spørgsmål om ACME-validering

Find svar på de mest almindelige spørgsmål om SSL certifikater og FairSSL.

Nej. Wildcards kræver DNS-01 validering. Det er defineret i RFC 8555 sektion 7.4. Årsagen er at HTTP-01 kun beviser kontrol over en enkelt host, ikke hele domænet.
DNS-01 er valideringsmetoden defineret i ACME-standarden. Det er den tekniske mekanisme, hvor CA'en tjekker en TXT-record. FairSSL AutoDNS er en service der håndterer DNS-01 for jer: I opretter en permanent CNAME, og FairSSL opretter og fjerner TXT-records automatisk ved hver validering. Det er DNS-01 under motorhjelmen, men uden at I skal give DNS API-adgang til jeres server.
Det afhænger af jeres DNS-udbyder og TTL-indstillinger. De fleste større udbydere (Cloudflare, Route 53, Azure DNS) propagerer inden for 10-30 sekunder. Ældre DNS-services eller registrarer med lange TTL-værdier kan tage op til 5 minutter. Simple-acme venter 30 sekunder som standard (konfigurerbar via DnsPropagationDelay i settings.json). Vi anbefaler en TTL på 60 sekunder eller lavere på _acme-challenge records.
Ja, via CNAME-delegation. Opret en CNAME-record der peger _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.
CA'en afviser certifikatanmodningen med en fejl der nævner CAA. Tjek jeres CAA DNS-records med 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.
Ja, FairSSLs ACME-server understøtter alle tre valideringstyper: HTTP-01, DNS-01 og TLS-ALPN-01. De fleste ACME-klienter understøtter også TLS-ALPN-01, men det bruges sjældent i praksis, fordi det kræver midlertidig kontrol over port 443, hvilket er upraktisk på produktionsservere.
MPIC er et krav fra CA/Browser Forum (SC-067) der gælder fra marts 2025. Det betyder at CA'en verificerer domænekontrol fra flere geografisk spredte punkter, ikke kun fra én server. Formålet er at forhindre BGP hijacking-angreb, hvor en angriber midlertidigt omdirigerer trafik for at bestå domænevalidering. MPIC påvirker ikke jeres opsætning, men gør valideringen mere sikker.

Kom i gang med SSL-automatisering

Opret en gratis konto og udsted dit første certifikat på under 10 minutter.