SSL-certificaten en HTTPS uitgelegd
IPAddress-Lookup.com ·
Elke keer dat je een website bezoekt en een klein hangslotje naast het adres ziet, of merkt dat de URL begint met https:// in plaats van http://, vertrouw je op een van de belangrijkste technologische onderdelen van het moderne internet: SSL/TLS-versleuteling en de digitale certificaten die dit mogelijk maken. Deze certificaten beschermen in stilte je wachtwoorden, creditcardnummers, privéberichten en surfgedrag tegen iedereen die mogelijk meeluistert op het netwerk tussen jou en de server. Maar ondanks dat het zo fundamenteel is, blijven de werking van SSL-certificaten en HTTPS voor de meeste mensen een raadsel. Deze gids licht een tipje van de sluier op en legt in begrijpelijke taal precies uit wat SSL/TLS is, hoe de versleuteling werkt, wat een certificaat eigenlijk bewijst en hoe je browser beslist of een site al dan niet te vertrouwen is.
Wat SSL en TLS eigenlijk zijn
SSL staat voor Secure Sockets Layer, een protocol dat oorspronkelijk halverwege de jaren negentig door Netscape werd ontworpen om de communicatie tussen webbrowsers en servers te beveiligen. Het probleem dat hiermee werd opgelost, was eenvoudig te omschrijven maar moeilijk op te lossen: het oorspronkelijke web (HTTP) verstuurde alles als onversleutelde, leesbare tekst. Iedereen die zich tussen jou en een website bevond – een malafide wifi-hotspot, een internetprovider, een gehackte router – kon de gegevens die heen en weer gingen lezen of zelfs wijzigen. SSL omhulde dat verkeer met een cryptografische laag, zodat het voor afluisteraars onbegrijpelijk werd.
SSL zelf is inmiddels verouderd. Er bleken ernstige beveiligingsfouten te zitten in SSL 2.0 en SSL 3.0, en deze versies zijn al jaren buiten gebruik gesteld. Het protocol dat het web tegenwoordig daadwerkelijk beveiligt, heet TLS, oftewel Transport Layer Security. TLS is de directe opvolger van SSL, en als mensen het over een „SSL-certificaat“ hebben, bedoelen ze bijna altijd een certificaat dat met TLS wordt gebruikt. De naam is gewoon blijven hangen omdat die bekend was. De ontwikkeling ziet er als volgt uit:
- SSL 1.0 — nooit openbaar uitgebracht vanwege beveiligingsfouten.
- SSL 2.0 (1995) en SSL 3.0 (1996) — beide zijn nu overal verouderd en uitgeschakeld.
- TLS 1.0 (1999) — de eerste versie onder de naam TLS; tegenwoordig ook verouderd.
- TLS 1.1 (2006) — samen met 1.0 buiten gebruik gesteld.
- TLS 1.2 (2008) — wordt nog steeds op grote schaal gebruikt en wordt als veilig beschouwd wanneer het correct is geconfigureerd.
- TLS 1.3 (2018) — de huidige standaard, sneller en ontdaan van verouderde, zwakke algoritmen.
TLS 1.3 was een ingrijpende herontwerp. Het verwijderde tientallen verouderde versleutelingsopties die kwetsbaarheden hadden veroorzaakt, en het stroomlijnde het opzetten van de verbinding, zodat beveiligde sessies sneller tot stand komen. Moderne browsers onderhandelen over de hoogste versie die beide partijen ondersteunen, wat in de praktijk neerkomt op TLS 1.2 of 1.3.
Wat een SSL-certificaat eigenlijk doet
Een SSL/TLS-certificaat vervult twee verschillende taken, en het is belangrijk om te begrijpen dat deze los van elkaar staan. De eerste is versleuteling — het versleutelen van de gegevens zodat deze tijdens het transport niet kunnen worden gelezen. De tweede is authenticatie, oftewel identiteitsverificatie — het aantonen dat de server waarmee je communiceert daadwerkelijk behoort tot het domein dat in de adresbalk wordt weergegeven, en niet tot een bedrieger die je verbinding heeft onderschept.
Versleuteling zonder authenticatie zou gevaarlijk zijn. Je zou een perfect versleutelde verbinding kunnen hebben met een aanvaller die je verkeer simpelweg doorstuurt terwijl hij alles meeleest. Het certificaat lost dit op door een cryptografische sleutel te koppelen aan een geverifieerde identiteit. Wanneer je browser een certificaat accepteert, bevestigt deze zowel dat de verbinding privé is als dat de andere partij is wie hij beweert te zijn. Samen zorgen deze twee garanties ervoor dat online bankieren, winkelen en inloggen veilig zijn.
Asymmetrische versus symmetrische cryptografie
Om te begrijpen hoe HTTPS werkt, heb je twee begrippen uit de cryptografie nodig, en die zijn eenvoudiger dan ze klinken.
Bij symmetrische versleuteling wordt één gedeelde geheime sleutel gebruikt om gegevens zowel te versleutelen als te ontsleutelen. Dit is uiterst snel en efficiënt, waardoor het ideaal is voor het versleutelen van de grote hoeveelheid gegevens tijdens een daadwerkelijke browsersessie. Het nadeel ligt voor de hand: beide partijen hebben dezelfde sleutel nodig, en als je die sleutel via een onbeveiligd netwerk verstuurt, kan een afluisteraar deze onderscheppen.
Asymmetrische versleuteling lost het probleem van het delen van sleutels op door gebruik te maken van een bij elkaar horend sleutelpaar: een openbare sleutel die iedereen kan zien, en een privésleutel die de eigenaar geheim houdt. Gegevens die met de openbare sleutel zijn versleuteld, kunnen alleen met de privésleutel worden ontsleuteld, en omgekeerd. Hierdoor kunnen twee onbekenden via een open kanaal een geheim afspreken. Asymmetrische cryptografie is echter traag, dus wordt deze niet voor het hele gesprek gebruikt.
HTTPS combineert het beste van beide. Het maakt in het begin kort gebruik van trage asymmetrische cryptografie om veilig een gedeeld geheim vast te stellen, en schakelt vervolgens over op snelle symmetrische versleuteling voor de rest van de sessie. Die onderhandeling wordt de TLS-handshake genoemd.
Hoe HTTPS werkt: een rondleiding door de TLS-handshake
Wanneer je een webadres intypt, vertaalt je browser eerst de domeinnaam naar een IP-adres — een proces dat nauw samenhangt met hoe DNS werkt — en opent vervolgens een verbinding met die server. Voordat er ook maar één webpagina wordt uitgewisseld, vindt de TLS-handshake plaats. Hier volgt stap voor stap wat er gebeurt.
- ClientHello. Je browser verstuurt het eerste bericht. Daarin staan de TLS-versies die hij ondersteunt, de cipher suites (combinaties van versleutelingsalgoritmen) die hij kan gebruiken, en een willekeurige waarde die wordt gebruikt bij het genereren van de sleutel. Zie het als een manier om te zeggen: „Dit is wie ik ben en dit is wat ik kan zeggen.“
- ServerHello. De server antwoordt door uit de lijst van de browser de TLS-versie en de cipher suite te kiezen die hij zal gebruiken, en stuurt zijn eigen willekeurige waarde. Beide partijen zijn het nu eens over de regels van het gesprek.
- Certificaat. De server toont zijn SSL/TLS-certificaat, dat zijn openbare sleutel bevat en de identiteitsgegevens die door een certificeringsinstantie zijn ondertekend. Dit is het moment waarop je browser controleert of het certificaat geldig en betrouwbaar is en is uitgegeven voor het domein dat je bezoekt.
- Sleuteluitwisseling. Met behulp van de openbare sleutel uit het certificaat (of een modern algoritme voor sleutelafstemming, zoals Elliptic Curve Diffie-Hellman) leiden beide partijen op veilige wijze een gedeeld geheim af. Cruciaal is dat een afluisteraar die elk bericht volgt, dit geheim nog steeds niet kan berekenen, omdat de privésleutel de server nooit verlaat.
- Sessiesleutels en voltooid. Beide partijen gebruiken het uitgewisselde materiaal en de twee willekeurige waarden om dezelfde set symmetrische sessiesleutels te genereren. Ze sturen elk een met deze sleutels versleuteld „voltooid“-bericht om aan te tonen dat de handshake is geslaagd. Vanaf dit moment wordt de gehele communicatie symmetrisch versleuteld — snel, privé en fraudebestendig.
Dit alles is doorgaans binnen een fractie van een seconde voltooid. In TLS 1.3 is de handshake ingekort tot één enkele roundtrip, en terugkerende bezoekers kunnen soms nog sneller verdergaan. Het eindresultaat is een beveiligd kanaal waarlangs je daadwerkelijke HTTPS-verzoeken en -antwoorden worden verzonden.
Certificaatautoriteiten en de vertrouwensketen
Een certificaat is slechts zo betrouwbaar als de entiteit die ervoor instaat. Die rol is weggelegd voor een certificeringsinstantie (CA) — een organisatie die uw browser en besturingssysteem van tevoren hebben gekozen om te vertrouwen. Wanneer een website-eigenaar een certificaat aanvraagt, controleert de CA of deze daadwerkelijk de controle over het domein heeft (en soms ook de bedrijfsidentiteit) voordat het certificaat met de eigen sleutel van de CA wordt ondertekend. Die handtekening is wat uw browser controleert.
Vertrouwen is georganiseerd als een keten met drie schakels:
- Rootcertificaat. De top van de keten. Rootcertificaten zijn vooraf geïnstalleerd in uw browser en besturingssysteem in een „trust store“. Hun privésleutels worden offline bewaard onder strenge beveiliging, omdat het compromitteren van één sleutel het hele systeem zou ondermijnen.
- Tussenliggend certificaat. Rootcertificaten ondertekenen websitecertificaten niet rechtstreeks. In plaats daarvan ondertekenen ze een of meer tussenliggende certificaten, die vervolgens de daadwerkelijke websitecertificaten ondertekenen. Hierdoor blijft de kostbare root-sleutel geïsoleerd en kan een gecompromitteerd tussenliggend certificaat worden ingetrokken zonder de root te verstoren.
- Bladcertificaat. Ook wel het eindentiteitscertificaat genoemd; dit is het certificaat dat op de website zelf is geïnstalleerd. Het is ondertekend door een tussencertificaat.
Wanneer je browser een site valideert, doorloopt hij deze keten: het bladcertificaat is ondertekend door een tussencertificaat, het tussencertificaat is ondertekend door een ander tussencertificaat of een rootcertificaat, en het rootcertificaat is er een dat de browser al vertrouwt. Als elke schakel klopt en de root in de vertrouwensopslag staat, wordt het certificaat geaccepteerd. Dit wordt ‘ketenvorming’ genoemd, en een veelvoorkomende oorzaak van ‘niet-vertrouwd’-fouten is een server die vergeet zijn tussencertificaat mee te sturen, waardoor de keten wordt verbroken.
Soorten certificaten
Niet alle certificaten zijn hetzelfde. Ze verschillen in de mate waarin de CA de aanvrager controleert en in het aantal domeinen dat ze dekken. De onderstaande tabel geeft een overzicht van de belangrijkste soorten.
| Type | Validatieniveau | Wat het bewijst | Typisch gebruik |
|---|---|---|---|
| DV (Domain Validated) | Basis — alleen controle van het domein | De aanvrager beheert het domein | Blogs, persoonlijke sites, de meeste moderne websites |
| OV (Organization Validated) | Matig — identiteit van de organisatie gecontroleerd | Het domein is eigendom van een geverifieerde organisatie | Zakelijke en bedrijfswebsites |
| EV (Extended Validation) | Streng — grondige juridische controle | Strenge bevestiging van de rechtspersoon | Banken, grote e-commercebedrijven, diensten die een hoog vertrouwen vereisen |
| Wildcard | Een van de bovenstaande | Beveiligt een domein en alle bijbehorende subdomeinen | *.example.com, inclusief winkel, blog, e-mail, enz. |
| Meerdere domeinen (SAN/UCC) | Een van de bovenstaande | Beveiligt meerdere afzonderlijke domeinen met één certificaat | Organisaties met veel afzonderlijke domeinen |
Een belangrijk punt voor gewone gebruikers: vanuit het oogpunt van versleuteling zijn DV-, OV- en EV-certificaten identiek. Ze bieden allemaal dezelfde sterke bescherming voor uw gegevens. Het verschil zit hem uitsluitend in de identiteitsverificatie. Vroeger werd bij EV-certificaten de bedrijfsnaam in het groen weergegeven in de adresbalk, maar browsers hebben dat onderscheid grotendeels afgeschaft, waardoor de meeste websites tegenwoordig gebruikmaken van goedkope of gratis DV-certificaten.
Wildcard- en multidomeincertificaten
Een wildcard-certificaat gebruikt een asterisk om elk subdomein van een basisdomein te dekken — zo beschermt één certificaat voor *.example.com bijvoorbeeld tegelijkertijd www.example.com, shop.example.com en login.example.com. Een certificaat voor meerdere domeinen, ook wel een SAN- of UCC-certificaat genoemd, bevat meerdere, volledig verschillende domeinnamen in één certificaat. Beide soorten certificaten verminderen het aantal certificaten dat een beheerder moet beheren.
Wat staat er in een certificaat?
Een certificaat is een gestructureerd document, en u kunt elk veld bekijken. De belangrijkste zijn:
- Subject. De identiteit waaraan het certificaat is uitgegeven, voornamelijk de domeinnaam (Common Name).
- Uitgever. De certificeringsinstantie die het certificaat heeft ondertekend en uitgegeven.
- Geldigheidsperiode. De "niet vóór"- en "niet na"-datums waartussen het certificaat geldig is.
- Alternatieve namen van de ondertekenende partij (Subject Alternative Names, SAN). De volledige lijst met domeinnamen die onder het certificaat vallen. Moderne browsers baseren zich op het SAN-veld, en niet op de oude Common Name, om de site te verifiëren.
- Openbare sleutel. De openbare helft van het sleutelpaar, die tijdens de handshake wordt gebruikt.
- Handtekeningalgoritme. De cryptografische methode die door de CA wordt gebruikt om te ondertekenen, zoals SHA-256 met RSA of ECDSA.
- Vingerafdruk. Een unieke hash van het volledige certificaat, handig om het exact te identificeren.
- Serienummer. Een unieke identificatiecode die is toegekend door de uitgevende CA.
Wanneer uw browser een site valideert, controleert deze of de huidige datum binnen de geldigheidsperiode valt, of een van de SAN-vermeldingen overeenkomt met het domein, of de handtekening intact is en of de keten naar een vertrouwde root leidt.
Het verlopen van certificaten en waarom de geldigheidsduur zo kort is
Elk certificaat heeft een vervaldatum, en de geldigheidsduur is in de loop der jaren drastisch afgenomen. Certificaten die vroeger meerdere jaren geldig waren, hebben nu een maximale geldigheidsduur van ongeveer een jaar of minder, en de sector evolueert naar een nog kortere geldigheidsduur, gemeten in weken. Er zijn goede redenen voor deze trend.
Kortere geldigheidsduur beperkt de schade als een privésleutel wordt gestolen — een gecompromitteerd certificaat verloopt simpelweg eerder, waardoor de tijdspanne waarin een aanvaller misbruik kan maken, wordt verkort. Ze zorgen er ook voor dat verouderde cryptografische algoritmen en ingetrokken of ten onrechte uitgegeven certificaten snel uit het ecosysteem verdwijnen. Het nadeel is dat beheerders veel vaker moeten vernieuwen, en daarom is automatisering niet langer optioneel, maar essentieel geworden.
Wat gebeurt er als een certificaat ongeldig is
Als een onderdeel van de validatie mislukt, onderbreekt uw browser de verbinding met een waarschuwing die de hele pagina vult, in plaats van een klein pictogram. De meest voorkomende gevallen van mislukking zijn:
- Verlopen certificaat. De huidige datum ligt na de „niet na“-datum. Dit is de meest voorkomende oorzaak en betekent meestal dat iemand vergeten is het certificaat te vernieuwen.
- Zelfondertekend certificaat. Het certificaat is ondertekend met zijn eigen sleutel in plaats van door een vertrouwde CA, waardoor er geen vertrouwensketen bestaat. Dit is prima voor interne tests, maar browsers weigeren het voor openbare websites.
- Naamverschil. Het domein dat je hebt bezocht, komt niet voor in de SAN-lijst van het certificaat — bijvoorbeeld een certificaat voor het ene domein dat op een ander domein wordt gehost.
- Niet-vertrouwde uitgever. De certificaatketen loopt terug naar een root die niet in uw vertrouwensopslag staat, vaak omdat een tussenliggend certificaat ontbreekt of de CA niet wordt herkend.
- Ingetrokken certificaat. De CA heeft het certificaat vóór de vervaldatum ongeldig verklaard, meestal vanwege een inbreuk op de sleutel.
In elk geval toont de browser een waarschuwing zoals „Uw verbinding is niet privé“ en blokkeert de pagina standaard. Deze waarschuwingen zijn bedoeld om u te beschermen: een niet-overeenkomend of niet-vertrouwd certificaat kan een teken zijn van een daadwerkelijke onderscheppingsaanval, dus u mag ze nooit zomaar wegklikken op een site die gevoelige gegevens verwerkt.
Gratis certificaten en automatische verlenging
Een van de belangrijkste ontwikkelingen op het gebied van webbeveiliging was de komst van gratis, geautomatiseerde certificaten. Let’s Encrypt, een non-profit certificeringsinstantie, stelde DV-certificaten kosteloos beschikbaar en, net zo belangrijk, volledig automatiseerbaar via een protocol genaamd ACME (Automated Certificate Management Environment).
Met ACME kan een server aantonen dat hij de controle over zijn domein heeft, een certificaat aanvragen, het installeren en het verlengen voordat het verloopt — allemaal zonder menselijke tussenkomst. Dit is precies waarom een korte geldigheidsduur van certificaten praktisch is: een certificaat dat zichzelf om de paar maanden vernieuwt, veroorzaakt geen operationele problemen. De combinatie van gratis uitgifte en automatisering is een belangrijke reden waarom HTTPS is uitgegroeid van een nichefunctie tot de vrijwel universele standaard op het web.
Hoe controleer je het certificaat van een website?
Je hebt geen speciale software nodig om een certificaat te controleren. In elke moderne browser kunt u op het hangslotpictogram in de adresbalk klikken en de optie kiezen om certificaatgegevens te bekijken. Daar vindt u de naam van de eigenaar, de uitgever, de geldigheidsdata, de SAN-lijst en de vingerafdruk. Dit is een snelle manier om te controleren of u zich op de echte website bevindt en om te zien wanneer een certificaat verloopt.
Voor een sneller en gedetailleerder overzicht — inclusief de volledige certificaatketen, het ondertekeningsalgoritme en het aantal dagen dat nog resteert tot de vervaldatum — kunt u een online tool gebruiken. Met onze eigen SSL-certificaatchecker kun je elk domein invoeren en direct zien of het certificaat geldig is, correct is gekoppeld aan een vertrouwde root en hoeveel tijd er nog resteert voordat het moet worden verlengd. Het is een eenvoudige manier om een certificaat dat binnenkort verloopt op te sporen, voordat het een browserwaarschuwing voor je bezoekers activeert.
Veelgestelde vragen
Is SSL hetzelfde als TLS?
Niet helemaal. SSL is het oudere protocol en is inmiddels verouderd, terwijl TLS de moderne opvolger is en de technologie die tegenwoordig websites beveiligt. De term ‘SSL-certificaat’ is echter uit gewoonte blijven hangen, dus in het dagelijks gebruik worden ‘SSL’ en ‘TLS’ vaak door elkaar gebruikt, ook al is de onderliggende technologie TLS.
Betekent het hangslotje dat een website veilig is?
Het hangslotje betekent dat uw verbinding met de site versleuteld is en dat het certificaat geldig is voor dat domein. Het garandeert niet dat de site zelf betrouwbaar is of vrij van oplichting — zelfs frauduleuze sites kunnen gratis DV-certificaten verkrijgen. Beschouw het hangslotje als een teken van een beveiligde verbinding, niet als een keurmerk voor algehele betrouwbaarheid.
Zijn gratis SSL-certificaten net zo veilig als betaalde?
Ja, wat betreft de versleuteling. Een gratis DV-certificaat van een certificeringsinstantie zoals Let's Encrypt biedt precies dezelfde versleutelingssterkte als een duur certificaat. Betaalde OV- en EV-certificaten voegen extra identiteitsverificatie van de organisatie toe, maar ze maken de versleutelde verbinding niet sterker.
Waarom krijg ik op sommige sites een certificaatwaarschuwing?
Certificaatwaarschuwingen verschijnen wanneer de validatie mislukt — meestal omdat het certificaat is verlopen, niet overeenkomt met de domeinnaam, zelfondertekend is of gekoppeld is aan een niet-vertrouwde autoriteit. De waarschuwing is een beschermingsmaatregel van je browser, en op een site waar wachtwoorden of betalingen worden verwerkt, moet je deze niet negeren zonder te begrijpen waarom deze is verschenen.
Hoe lang zijn SSL-certificaten geldig?
Moderne openbare certificaten zijn doorgaans ongeveer een jaar of korter geldig, en de sector evolueert gestaag naar veel kortere geldigheidsduur. Korte geldigheidsduur vermindert het risico van gestolen sleutels en zorgt ervoor dat verouderde cryptografie niet meer wordt gebruikt. Geautomatiseerde verlenging via protocollen zoals ACME maakt regelmatige verlenging moeiteloos.
Kan ik een certificaat controleren zonder de site in een browser te bezoeken?
Ja. Met online tools kun je een domeinnaam invoeren en de certificaatgegevens bekijken, waaronder de uitgever, de geldigheidsdata, de volledige vertrouwensketen en het aantal dagen tot de vervaldatum, zonder handmatig het hangslotje te hoeven controleren. Dit is handig om je eigen websites in de gaten te houden of een domein te verifiëren voordat je het bezoekt.