Skip to main content Spring til indhold

SSL, TLS og HTTPS: sådan sikrer du din hjemmeside

Når en adresse starter med https:// og browseren viser en hængelås, er forbindelsen mellem den besøgende og serveren krypteret. Det sker med TLS, som mange stadig kalder SSL, og det kræver et certifikat. For en hjemmeside er det ikke længere et valg: uden HTTPS markerer browsere siden som “ikke sikker”, betalingsudbydere kræver det, og HTTP/2 og HTTP/3 kan ikke bruges. Her forklarer vi forskellen på SSL, TLS og HTTPS, hvordan det virker, og hvordan du sætter det rigtigt op på WordPress.

SSL, TLS og HTTPS: hvad er forskellen?

SSL var den oprindelige protokol til krypterede forbindelser, udviklet af Netscape i 1990’erne. Alle dens versioner er for længst udfaset på grund af kendte sikkerhedshuller, og efterfølgeren TLS er det, der rent faktisk bruges i dag. Navnet SSL har bare hængt ved, så et “SSL-certifikat” er i praksis et TLS-certifikat. HTTPS er endelig blot HTTP, den protokol browsere henter hjemmesider med, sendt gennem en krypteret TLS-forbindelse.

Sådan virker TLS

TLS giver en forbindelse tre egenskaber. Den er fortrolig, fordi data krypteres, så ingen undervejs kan læse loginoplysninger, betalingsdata eller formularer. Den er intakt, fordi enhver ændring af data undervejs opdages. Og den er autentisk, fordi certifikatet beviser, at du taler med den rigtige server og ikke en, der udgiver sig for at være den. Det sidste bliver ofte glemt, men uden det ville krypteringen være værdiløs: du kunne have en helt privat samtale med en svindler.

Før der sendes data, udfører browser og server et håndtryk. Browseren fortæller, hvilke krypteringsmetoder den kan, serveren vælger en og sender sit certifikat, og browseren tjekker, at certifikatet er gyldigt, udstedt til det rigtige domæne og underskrevet af en udsteder, den stoler på. Derefter bliver de enige om en nøgle, som kun de to kender, og resten af forbindelsen krypteres med den. Selve nøgleudvekslingen er bygget sådan, at en angriber, der ser hele håndtrykket, alligevel ikke kan regne nøglen ud.

I de ældre versioner kostede håndtrykket to rundture mellem browser og server, før der kunne sendes data. TLS 1.3 fra 2018 (på engelsk) har skruet det ned til én og samtidig fjernet en række svage krypteringsmetoder. TLS 1.0 og 1.1 er officielt udfaset (på engelsk), og browserproducenterne meddelte i 2018, at de ville udfase dem i 2020 (på engelsk), så en server bør understøtte TLS 1.3 og 1.2 og intet ældre. Det kan du tjekke gratis med SSL Labs’ server test.

SSL-certifikater

Et certifikat binder dit domæne til en offentlig nøgle og er underskrevet af en certifikatudsteder, som browserne stoler på. Det mest almindelige er et DV-certifikat, hvor udstederen kun tjekker, at du kontrollerer domænet, typisk via en fil på serveren eller en post i DNS. OV- og EV-certifikater kræver også, at virksomheden bag kontrolleres. Tidligere viste browsere firmanavnet i adresselinjen for EV-certifikater, men det er fjernet, så de besøgende ser ingen forskel. Krypteringen er den samme på alle niveauer, og for en webshop er et gratis DV-certifikat fra fx Let’s Encrypt fuldt ud tilstrækkeligt.

TypeHvad udstederen tjekkerTypisk brug
DV (domain validated)At du kontrollerer domænetLangt de fleste hjemmesider og webshops
OV (organization validated)Domænet og at virksomheden findesVirksomheder, der kræver det i en politik eller et udbud
EV (extended validation)Domænet og en grundigere kontrol af virksomhedenBanker og lignende, i dag uden synlig forskel i browseren

Lige så vigtigt som niveauet er, hvilke navne certifikatet dækker. Et certifikat gælder kun for de domænenavne, der står i det, og eksempel.dk og www.eksempel.dk er to forskellige navne. De fleste udstedere tager begge med automatisk, men det er stadig en almindelig årsag til advarsler. Et wildcard-certifikat (*.eksempel.dk) dækker alle underdomæner på ét niveau, fx shop og blog, men ikke selve domænet uden foranstillet navn, og hos Let’s Encrypt kræver det, at du beviser ejerskabet via DNS. Har du flere forskellige domæner, fx en .dk og en .com, kan de samles i ét certifikat med flere navne eller have hver sit.

Certifikater udløber, og levetiden bliver kortere: browserproducenterne og udstederne i CA/Browser Forum har besluttet at sætte den maksimale gyldighed gradvist ned de kommende år. Fornyelse skal derfor være automatisk. Et udløbet certifikat giver en helsides advarsel i browseren, og så er shoppen reelt lukket. God hosting fornyer automatisk, og god vedligeholdelse, der holder certifikatet fornyet, opdager det, hvis fornyelsen fejler.

Sådan tjekker du et certifikat

Det hurtigste er at klikke på ikonet til venstre for adressen i browseren. Her kan du se, hvem der har udstedt certifikatet, hvilke navne det dækker, og hvornår det udløber. Vil du vide, om serveren er sat ordentligt op, giver SSL Labs’ gratis server test en karakter og viser protokolversioner, svage krypteringsmetoder og manglende mellemcertifikater. Og med adgang til en terminal får du de vigtigste oplysninger på ét sted:

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

Linjen notAfter er udløbsdatoen. Tjekker du den for både domænet med og uden www, har du fanget de fleste problemer, før kunderne ser dem.

HTTPS på din hjemmeside

HTTPS betyder mere end sikkerhed. Browsere markerer sider uden HTTPS som “ikke sikker”, og Chrome har gjort det for alle HTTP-sider siden juli 2018 (på engelsk). Google begyndte i 2014 at bruge HTTPS som et signal i søgeresultaterne (på engelsk), og HTTP/2 og HTTP/3 virker i praksis kun over krypterede forbindelser, så uden HTTPS går du også glip af hastighed. På WordPress sætter du det op sådan her:

  1. Installér et certifikat. De fleste hostingudbydere gør det med et klik eller automatisk, og det bør være et krav, når du vælger. Læs mere i guiden om valg af hosting.
  2. Skift adresserne i WordPress til https:// under Indstillinger → Generelt.
  3. Omdiriger al HTTP-trafik til HTTPS med en permanent 301-omdirigering, så gamle links og søgeresultater lander det rigtige sted.
  4. Ret blandet indhold: billeder, scripts og stylesheets, der stadig hentes over http://. Ret adresserne i databasen med et søg og erstat-værktøj, og tjek tema og plugins for fastkodede adresser.
  5. Slå HSTS til, når alt virker, så browseren altid bruger HTTPS til dit domæne.
  6. Opdatér Search Console og andre værktøjer til HTTPS-adressen.

Fejlbeskeder, og hvad de betyder

Når noget er galt med certifikatet, stopper browseren den besøgende med en helsides advarsel. Beskeden fortæller som regel præcis, hvor fejlen er. Navnene her er Chromes, men de andre browsere viser det samme med andre ord:

FejlHvad den betyderDen typiske årsag
NET::ERR_CERT_DATE_INVALIDCertifikatet er udløbet eller ikke gyldigt endnuDen automatiske fornyelse er holdt op med at virke
NET::ERR_CERT_COMMON_NAME_INVALIDCertifikatet dækker ikke det navn, der blev åbnetDer mangler www eller domænet uden www
NET::ERR_CERT_AUTHORITY_INVALIDBrowseren stoler ikke på udstederenEt selvsigneret certifikat eller et manglende mellemcertifikat
ERR_SSL_PROTOCOL_ERRORBrowser og server kan ikke blive enige om forbindelsenForkert opsætning på serveren eller kun forældede TLS-versioner
ERR_TOO_MANY_REDIRECTSSiden sender browseren i ringEt CDN og WordPress omdirigerer frem og tilbage mellem HTTP og HTTPS

To fejl er værd at holde særligt øje med: certifikater, der udløber, fordi den automatiske fornyelse holdt op med at virke efter en ændring i DNS eller hosting, og rester af blandet indhold i gamle indlæg. Det sidste giver ikke en helsides advarsel, men hængelåsen forsvinder, og browseren kan blokere scripts, der hentes over http://, så dele af siden holder op med at virke. Browserens udviklerværktøjer viser under Console, præcis hvilke filer det drejer sig om.

Hvad HTTPS ikke beskytter mod

Hængelåsen betyder, at forbindelsen er krypteret, ikke at siden er til at stole på. Svindelsider har også gyldige certifikater, og HTTPS beskytter hverken mod et hacket plugin, et svagt admin-password eller en usikker server. Kryptering er ét lag. Opdateringer, backup, stærke logins og sikker filoverførsel med SFTP er de andre.

Ofte stillede spørgsmål

Er et gratis certifikat lige så sikkert som et betalt?

Ja, krypteringen er den samme. Et betalt certifikat kan give højere validering af virksomheden eller en garanti, men de besøgende kan ikke se forskel.

Hvor længe gælder et SSL-certifikat?

Certifikater fra Let’s Encrypt gælder i 90 dage og fornyes automatisk, men Let’s Encrypt sætter levetiden ned (på engelsk) til 64 dage fra februar 2027 og 45 dage fra februar 2028. For alle udstedere har CA/Browser Forum besluttet at skære den maksimale gyldighed ned i trin (Baseline Requirements, afsnit 6.3.2, på engelsk): 200 dage fra marts 2026, 100 dage fra marts 2027 og 47 dage fra marts 2029. Manuel fornyelse er derfor ikke en realistisk plan længere.

Hvorfor står der “ikke sikker”, selv om jeg har et certifikat?

Som regel fordi siden stadig kan åbnes over http:// uden omdirigering, eller fordi den henter billeder eller scripts over http://. Tjek, at al trafik omdirigeres til HTTPS, og se efter blandet indhold i browserens udviklerværktøjer.

Gør HTTPS min side langsommere?

Nej, ikke mærkbart. Med TLS 1.3 er håndtrykket kort, og fordi HTTPS er en forudsætning for HTTP/2 og HTTP/3, kan en side med HTTPS i praksis være hurtigere end uden.

Vil du have det håndteret?

Vi sætter HTTPS rigtigt op, holder certifikaterne fornyet og overvåger, at alt virker, som en del af vores WordPress-vedligeholdelse.

← Alle indlæg

Lad os høre mere om dig

Er din webshop langsom, ustabil eller bare svær at arbejde med? Skriv et par linjer, så får du en ærlig vurdering direkte fra udvikleren.