Het slotje in je adresbalk: wat HTTPS is en hoe je het krijgt
HTTPS versleutelt de verbinding tussen de browser van je bezoeker en je server, en het certificaat laat zien dat de server bij jouw domeinnaam hoort. Een certificaat van Let's Encrypt is gratis en wordt met certbot vanzelf vernieuwd. Een betaald certificaat heb je voor een gewone site niet nodig.
Het certificaat achter het slotje in je adresbalk hoeft niets te kosten. Let’s Encrypt geeft ze gratis uit, en op je eigen server vraagt een programma als certbot het aan en vernieuwt het daarna vanzelf. Het enige wat jij moet regelen, is dat je domeinnaam naar je server wijst. Daarna is het één commando.
Wat HTTPS doet, en wat het slotje niet zegt
Zonder HTTPS gaat alles wat een bezoeker op je site leest en invult als leesbare tekst over het internet. Met HTTPS is die verbinding versleuteld: wie onderweg meekijkt, bijvoorbeeld op een openbaar wifinetwerk, ziet alleen onleesbare tekens. Het certificaat is het bewijs dat de server waarmee de browser praat, echt bij jouw domeinnaam hoort.
Wat het slotje niet zegt, is dat een site te vertrouwen is. Het team achter Chrome schreef in 2023 dat bijna alle phishingsites, nepsites die je gegevens willen ontfutselen, ook HTTPS gebruiken en dus ook een slotje tonen. In hun onderzoek begreep maar elf procent van de deelnemers wat het slotje precies betekent. Daarom staat er in Chrome sinds versie 117 geen slotje meer in de adresbalk, maar een ander icoontje dat naar de instellingen van de site leidt. Dat lees je in hun eigen uitleg. De beveiligde verbinding zelf is gewoon gebleven.
Zonder HTTPS valt je site wel op, op de verkeerde manier. Chrome waarschuwt als een verbinding niet beveiligd is. Google kondigde bovendien aan dat Chrome vanaf versie 154, gepland voor oktober 2026, standaard eerst toestemming vraagt voordat het een openbare site zonder HTTPS opent. En op een site met een contactformulier wil je het sowieso, want daar vullen mensen hun naam en mailadres in.
Gratis, en steeds korter geldig
Let’s Encrypt is een organisatie die certificaten gratis uitgeeft. Volgens hun vragenpagina is een certificaat 90 dagen geldig, en ze raden aan het elke 60 dagen te vernieuwen. Dat doe je niet met de hand: certbot kijkt twee keer per dag of een certificaat bijna verloopt, en vraagt dan zelf een nieuw aan.
Die termijn wordt korter. Let’s Encrypt geeft vanaf 10 februari 2027 standaard certificaten uit die 64 dagen geldig zijn, en vanaf 16 februari 2028 certificaten van 45 dagen, zo staat in hun aankondiging. Gaat het vernieuwen automatisch, dan merk je daar niets van. Wat wel veranderd is: sinds 4 juni 2025 stuurt Let’s Encrypt geen mail meer als een certificaat bijna verloopt. Je moet er dus op kunnen vertrouwen dat het vanzelf gaat, en af en toe nagaan of dat ook zo is.
Betaalde certificaten bestaan ook, bijvoorbeeld met een extra controle van je bedrijfsgegevens. Let’s Encrypt geeft die soort niet uit. Aan de versleuteling verandert zo’n certificaat niets, en voor een gewone bedrijfssite of persoonlijke site heb je het niet nodig.
Heb je geen eigen server maar gewone hosting, kijk dan in het beheerscherm van je pakket. Bij veel hostingpartijen zit een gratis certificaat inbegrepen, dat je met één keuze aanzet. Vraagt je hostingpartij geld voor een gewoon certificaat, vraag dan wat je daarvoor krijgt dat je bij Let’s Encrypt niet krijgt.
Zo regel je het op je eigen server
Op een server die is ingericht met het installatiescript van retrAIt, zit het aanvragen in het commando waarmee je je site online zet:
sudo publish mijndomein.nl ~/sites/mijndomein.nl
Dat commando zet je bestanden klaar en vertelt nginx, de webserver, welk domein bij welke map hoort. Daarna vraagt certbot een certificaat aan voor mijndomein.nl en www.mijndomein.nl. Let’s Encrypt controleert daarbij of het domein echt naar jouw server wijst. Daarom moeten de A-records van je domein en van www eerst goed staan; hoe je dat doet, lees je in Een domeinnaam koppelen aan je eigen server. Het certificaat geldt alleen voor de namen die je aanvraagt. Bij een domein als mijndomein.nl doet publish de naam met www meteen mee. Voor een proefadres als proef.mijndomein.nl vraagt hij alleen die ene naam aan, en daarvoor heb je dus een eigen A-record nodig.
Wijst je domein nog niet naar je server, dan meldt het commando dat het certificaat is overgeslagen. Wacht dan tot dig +short mijndomein.nl het IP-adres van je server laat zien, en draai hetzelfde commando nog een keer. Probeer het niet tien keer achter elkaar: Let’s Encrypt staat per domeinnaam vijf mislukte controles per uur toe, en daarna moet je wachten.
Wil je weten hoe lang je certificaat nog geldig is, typ dan op je server:
sudo certbot certificates
Je ziet per certificaat de domeinnamen en de datum waarop het verloopt. Neem dat op in de maandelijkse ronde langs je site, die ik beschrijf in Een website bijhouden in tien minuten per maand.
Van http naar https, en wat er nog mis kan gaan
Wie je adres zonder https intypt, of een oude link volgt, moet vanzelf op de beveiligde versie uitkomen. Certbot zet daarvoor een doorverwijzing in de instellingen van nginx: wie via http binnenkomt, wordt doorgestuurd naar https. Het installatiescript zet daarnaast HSTS aan. Dat is een regel waarmee je server de browser vertelt dat hij je site een jaar lang alleen via https mag openen. Wat zulke regels doen, staat in Beveiligingsheaders in gewone taal.
Eén probleem zie je pas als je goed kijkt: gemengde inhoud. Laadt een pagina die via https binnenkomt een script of een opmaakbestand via gewoon http, dan blokkeert de browser dat bestand, en ziet je pagina er ineens kaal uit. Afbeeldingen via http zetten moderne browsers meestal zelf om naar https. Je voorkomt het door Claude in je projectmap te laten zoeken naar adressen die met http:// beginnen, en ze te laten vervangen door de versie met https.
Een voorbeeld: de praktijk van Fatima
Neem als voorbeeld Fatima, fysiotherapeut in Deventer. Haar oude site stond bij een hostingpartij zonder certificaat, en Chrome zette “Niet beveiligd” naast het adres. Dat stond er ook op haar contactpagina, waar mensen schrijven waarom ze willen komen. Op haar nieuwe server laat ze eerst haar A-records naar de server wijzen. Een uur later geeft dig +short het goede adres, en zet publish het certificaat er in één keer bij. Omdat de adressen van haar pagina’s gelijk zijn gebleven, komen oude links uit Google via de doorverwijzing gewoon op de beveiligde pagina’s uit.
In haar maandelijkse ronde typt ze sudo certbot certificates. Ze ziet dat er nog ruim een maand over is, en weet dat certbot het op tijd vernieuwt. Meer hoeft ze er niet aan te doen.
Heb je al een site, open hem dan in je browser en klik op het icoontje links van het adres. Daar zie je of de verbinding beveiligd is en wie het certificaat heeft uitgegeven. Ontbreekt het, zorg dan eerst dat je domeinnaam naar je server wijst. Daarna is het slotje een kwestie van één commando, en van af en toe kijken of het vernieuwen nog loopt.
Foto bovenaan: Tim Mossholder via Pexels