Dansk hosting fra Aalborg
Servere i Europa
24/7/365 dansk support
[email protected]
Domæner, DNS og SSL 9 min. læsning Opdateret 3. oktober 2026

SSL-certifikatet er udløbet — hvorfor fornyelsen fejlede

SSL certifikat udløbet? Et udløbet certifikat spærrer siden med en advarsel. Se hvorfor automatisk fornyelse fejler – og hvordan du retter det.

SSL-certifikatet er udløbet — hvorfor fornyelsen fejlede

Kort svar: Et udløbet SSL-certifikat betyder næsten altid, at den automatiske fornyelse har fejlet i flere uger uden at nogen har opdaget det. De hyppigste årsager er, at domænet (A- eller AAAA-record) peger et andet sted hen, at /.well-known/acme-challenge/ er blokeret eller omdirigeret væk, at en CAA-record ikke tillader udstederen, eller at domænet selv er udløbet. Ret årsagen, genudsted certifikatet, og tjek med openssl, hvilken udløbsdato verden faktisk ser.

Fagligt gennemgået: 2. oktober 2026

Et udløbet certifikat giver en advarselsside i alle browsere, og de fleste besøgende går igen med det samme. Formularer, betaling og API-integrationer holder også op med at virke, fordi andre systemer nægter at forbinde til en server med et ugyldigt certifikat.

Den gode nyhed er, at et nyt certifikat udstedes på under et minut, når årsagen er væk. Opgaven er at finde årsagen – ellers fejler fornyelsen igen om et par måneder.

Før du ændrer noget: Sæt ikke Cloudflares SSL-tilstand til “Flexible” eller installér et selvsigneret certifikat for at få advarslen væk – det skjuler problemet og svækker sikkerheden. Klik heller ikke “genudsted” igen og igen: Let’s Encrypt har grænser for, hvor mange mislykkede valideringer og nye certifikater der må udstedes på kort tid. Find årsagen først.

Læs fejlkoden, før du genudsteder

Browsere viser forskellige fejlkoder, og de peger på forskellige årsager. Et nyt certifikat løser kun den første:

Fejlkode i browserenHvad den betyderHvor du leder
NET::ERR_CERT_DATE_INVALIDCertifikatet er udløbet – eller uret på serveren eller den besøgendes computer går forkertFornyelsen (trin 2–5)
NET::ERR_CERT_COMMON_NAME_INVALIDCertifikatet er gyldigt, men udstedt til et andet navnMangler www. eller et underdomæne i certifikatet? Peger domænet på en anden server?
NET::ERR_CERT_AUTHORITY_INVALIDSelvsigneret certifikat, eller mellemcertifikatet manglerTypisk efter en manuel installation – installér hele kæden
ERR_SSL_PROTOCOL_ERRORServeren taler ikke HTTPS korrekt på port 443Webserverens konfiguration, ikke certifikatet
Cloudflare 525 eller 526Certifikatet mellem Cloudflare og din server fejlerAfsnittet om Cloudflare nedenfor

1. Se hvilket certifikat verden faktisk ser

Start med at bekræfte, hvad der rent faktisk serveres. Kør denne kommando fra en terminal (Mac, Linux eller Windows med OpenSSL):

echo | openssl s_client -servername dinside.dk -connect dinside.dk:443 2>/dev/null | openssl x509 -noout -subject -issuer -dates -ext subjectAltName

Du får udsteder, notBefore og notAfter samt de navne, certifikatet dækker. Tre ting kan du aflæse med det samme:

  • Er notAfter passeret, er certifikatet reelt udløbet.
  • Er datoen ny, selv om browseren stadig klager, ligger der en gammel kopi i en proxy eller i browserens cache.
  • Er udstederen Cloudflare eller et andet CDN, ser du proxyens certifikat – det bagvedliggende skal tjekkes separat.

2. Kontrollér at domænet peger rigtigt – også IPv6

Let’s Encrypt bekræfter, at du kontrollerer domænet, ved at kalde din server. Peger DNS et andet sted hen, mislykkes kontrollen. Tjek både IPv4 og IPv6 for både domænet og www:

dig A ditdomaene.dk +short
dig AAAA ditdomaene.dk +short
dig A www.ditdomaene.dk +short
dig AAAA www.ditdomaene.dk +short

Svarer A-recorden med serverens IP, er IPv4 i orden. Den oversete fejl er en gammel AAAA-record: findes der en IPv6-adresse, forsøger Let’s Encrypt typisk at validere via den. Peger den på et gammelt webhotel, fejler fornyelsen, selv om sitet ser ud til at virke for dig. Fjern AAAA-recorden, eller ret den til den rigtige server.

Er sitet for nylig flyttet, så se når domænet stadig peger på det gamle webhotel.

3. Test at kontrolstien er åben på port 80

Den almindelige valideringsmetode (HTTP-01) henter en fil under http://ditdomaene.dk/.well-known/acme-challenge/ over almindelig HTTP på port 80. Læg en testfil i mappen, og hent den:

curl -i http://ditdomaene.dk/.well-known/acme-challenge/test.txt

Du skal få status 200 og filens indhold – eller en omdirigering til samme fil over HTTPS, som så svarer 200. Let’s Encrypt følger omdirigeringer til HTTP og HTTPS på samme vært, så en almindelig omdirigering fra HTTP til HTTPS er ikke i sig selv et problem. Det fejler, når:

  • port 80 er lukket i serverens firewall,
  • et sikkerhedsplugin, en WAF eller en regel i .htaccess svarer 403 på stien,
  • en omdirigering sender stien til et andet domæne, en loginside eller forsiden,
  • en “vedligeholdelsestilstand” eller et coming soon-plugin fanger alle forespørgsler.

Undtag /.well-known/ i sikkerhedsplugin, firewall og omdirigeringsregler, og slet testfilen bagefter.

4. Tjek CAA-records og domænets status

En CAA-record i DNS fortæller, hvilke udstedere der må lave certifikater til domænet. Er der en CAA-record, der kun nævner en anden udsteder, afviser Let’s Encrypt at udstede – også selv om alt andet er rigtigt:

dig CAA ditdomaene.dk +short

Svarer kommandoen intet, er der ingen begrænsning. Står der fx 0 issue "digicert.com" uden letsencrypt.org, skal Let’s Encrypt tilføjes, eller den gamle record fjernes.

Tjek også, at selve domænet er betalt og aktivt. Er domænet udløbet, svarer DNS ikke, og intet kan valideres. Se når domænet er udløbet.

5. Genudsted, og sørg for at det nye certifikat bliver brugt

Når årsagen er væk, genudsteder du certifikatet – i kontrolpanelet, hvis det har en knap til det, eller med den ACME-klient, serveren bruger. Med Certbot kan du først teste uden at bruge af grænserne og derefter forny:

certbot renew --dry-run
certbot renew
certbot certificates

certbot certificates viser udløbsdatoer for alle certifikater på serveren. Bagefter skal webserveren genindlæses, så den bruger det nye certifikat – ellers serveres den gamle kopi videre, selv om fornyelsen lykkedes. Kør til sidst kommandoen fra trin 1 igen, og kontrollér at notAfter nu ligger ude i fremtiden.

Cloudflare og andre proxyer: to certifikater, ikke ét

SSL-certifikat udløbet: læs fejlkoden, tjek DNS, åbn kontrolstien for Let's Encrypt, genudsted og overvåg udløb

Kører sitet gennem Cloudflare, ser besøgende Cloudflares certifikat, mens der mellem Cloudflare og din server ligger et andet. Er det bagvedliggende udløbet, får besøgende ikke en certifikatfejl, men en 526 Invalid SSL certificate eller 525 SSL handshake failed – og så leder man forgæves i browseren.

Med tilstanden “Full (strict)” skal serverens certifikat være gyldigt; med “Full” accepteres et udløbet eller selvsigneret. Den rigtige løsning er ikke at sænke sikkerheden, men at forny serverens certifikat. Sørg for, at Let’s Encrypt-kontrollen kan komme igennem Cloudflare: kontrollér, at ingen firewall- eller omdirigeringsregel i Cloudflare rammer /.well-known/acme-challenge/, eller brug DNS-baseret validering. Alternativt kan du installere et Cloudflare Origin-certifikat på serveren – det har lang gyldighed, men virker kun, så længe trafikken går gennem Cloudflares proxy. Se Cloudflare 525 og 526.

Underdomæner og wildcard

Et almindeligt certifikat dækker kun de navne, der står i det. Et shop. eller mail., der blev tilføjet efter udstedelsen, har sit eget certifikat – eller intet. Kommandoen i trin 1 viser under subjectAltName, hvilke navne der er med.

Et wildcard-certifikat dækker *.dinside.dk, men kun ét niveau ned og ikke selve dinside.dk, medmindre det står i certifikatet. Let’s Encrypt udsteder kun wildcard med DNS-validering (DNS-01), så fornyelsen kræver, at ACME-klienten kan oprette TXT-records hos din DNS-udbyder. Er API-adgangen udløbet eller ændret, fejler fornyelsen stille.

Certifikater lever kortere og kortere

Levetiden for offentlige certifikater bliver gradvist kortere. Browserproducenter og udstedere i CA/Browser Forum har besluttet, at den maksimale gyldighed sænkes til 200 dage fra marts 2026, 100 dage fra marts 2027 og 47 dage fra marts 2029. Let’s Encrypt er gået længere: deres certifikater har været på 90 dage, et valgfrit 45-dages-certifikat blev tilgængeligt i maj 2026, standarden bliver 64 dage i februar 2027 og 45 dage i februar 2028.

Det har to konsekvenser. For det første er manuel fornyelse ikke længere realistisk – alt skal være automatiseret. For det andet bliver margenen ved en fejlende fornyelse mindre. Let’s Encrypt anbefaler, at klienter fornyer ved cirka to tredjedele af levetiden eller bruger ACME Renewal Information (ARI), så udstederen selv kan signalere, hvornår der skal fornys.

Let’s Encrypt sendte tidligere en mail, før et certifikat udløb, men den tjeneste stoppede i juni 2025. Hvis du har stolet på de mails, har du ikke længere en advarsel – og så er egen overvågning nødvendig.

Overvåg udløb, så du hører det før kunderne

Automatisk fornyelse er ikke det samme som automatisk kontrol. Sæt mindst én ting op, der fortæller dig, hvis fornyelsen fejler:

  • En oppetidsovervågning med SSL-tjek, der advarer, når der er under 14 dage tilbage. Se overvågning af certifikat- og domæneudløb.
  • Et lille planlagt script, der kører openssl-kommandoen fra trin 1 og advarer, når notAfter nærmer sig.
  • Kontrolpanelets egne advarsler sendt til en adresse, nogen faktisk læser.

Tjek også certifikatet efter enhver flytning, DNS-ændring eller ændring i Cloudflare – det er de tidspunkter, hvor fornyelsen oftest begynder at fejle.

På WordPress hosting hos Hostious er gratis SSL fra Let’s Encrypt inkluderet, og dansk support kan døgnet rundt hjælpe med at finde ud af, hvorfor en fornyelse fejlede.

Læs også

Ofte stillede spørgsmål om udløbne SSL-certifikater

Hvor længe er et certifikat gyldigt?

Let’s Encrypt har udstedt certifikater på 90 dage, men levetiden bliver kortere: 64 dage som standard fra februar 2027 og 45 dage fra februar 2028. Klienten bør forny ved cirka to tredjedele af levetiden, så der er margen, hvis en fornyelse fejler.

Kan jeg bruge siden imens?

Teknisk ja, men besøgende møder en advarsel, og integrationer som betaling og API-kald kan afvise forbindelsen. Det bør fikses samme dag.

Sitet kører gennem Cloudflare og viser 526. Er det certifikatet?

Ja, men det bagvedliggende: certifikatet mellem Cloudflare og din server er udløbet eller ugyldigt. Forny det på serveren, og sørg for, at Let’s Encrypt-kontrollen kan komme igennem – sænk ikke Cloudflares SSL-tilstand til ‘Full’ for at skjule fejlen.

Panelet siger, at certifikatet er fornyet, men browseren viser stadig udløbet. Hvorfor?

Webserveren serverer stadig den gamle kopi, eller en proxy foran har sin egen. Genindlæs webserveren, ryd proxyens cache, og tjek med openssl s_client, hvilken udløbsdato verden faktisk ser.

Får jeg stadig en mail fra Let’s Encrypt, før certifikatet udløber?

Nej. Let’s Encrypt stoppede med at sende udløbsmails i juni 2025. Brug en oppetidsovervågning med SSL-tjek eller kontrolpanelets egne advarsler i stedet.

Skrevet af Marc, stifter af Hostious

Jeg hedder Marc og har stiftet Hostious. Vi hoster WordPress-hjemmesider og WooCommerce-webshops for danske virksomheder – drevet fra Aalborg-området med servere i Europa – og jeg skriver guiderne her ud fra det, vi ser i driften hver dag.

Udgivet 28. august 2026Opdateret 3. oktober 2026Fagligt gennemgået 2. oktober 2026