HTTP Strict Transport Security (HSTS)

HSTS, Strict Transport Security, HTTP Strict-Transport-Security header, Strict-Transport-Security, Force HTTPS, HTTPS-afdwinging, Strikte transportbeveiliging
HTTP Strict Transport Security (HSTS) is een beveiligingsmechanisme dat browsers dwingt om alleen via een versleutelde HTTPS-verbinding met een website te communiceren, waardoor man-in-the-middle aanvallen worden voorkomen.

Wat is HTTP Strict Transport Security (HSTS)?

HTTP Strict Transport Security (HSTS) is een beveiligingsstandaard die websitebeheerders in staat stelt om browsers te instrueren dat hun website uitsluitend via een beveiligde HTTPS-verbinding benaderd mag worden. Deze instructie wordt gegeven via een speciale HTTP-header die door de webserver wordt verstuurd.

Wanneer een browser een website bezoekt die HSTS heeft geactiveerd, onthoudt de browser dit en zal bij alle toekomstige bezoeken automatisch HTTPS gebruiken, zelfs als de gebruiker http:// intypt of op een onbeveiligde link klikt. Dit gebeurt voordat er überhaupt een verzoek naar de server wordt gestuurd, waardoor potentiële beveiligingsrisico's worden geëlimineerd.

Hoe werkt HSTS?

HSTS werkt door middel van een HTTP-response header genaamd Strict-Transport-Security. Deze header bevat instructies over hoe lang de browser deze regel moet onthouden (max-age) en of deze ook geldt voor subdomeinen. Een typische HSTS-header ziet er als volgt uit:

Strict-Transport-Security: max-age=31536000; includeSubDomains; preload

De belangrijkste parameters zijn:

  • max-age: Bepaalt hoeveel seconden de browser de HSTS-policy moet onthouden (bijvoorbeeld 31536000 seconden = 1 jaar)
  • includeSubDomains: Optionele directive die aangeeft dat de regel ook geldt voor alle subdomeinen
  • preload: Optionele directive voor opname in de HSTS preload lijst van browsers

Waarom is HSTS belangrijk?

HSTS beschermt tegen verschillende beveiligingsrisico's die kunnen optreden bij het gebruik van websites:

  • Protocol downgrade aanvallen: Aanvallers kunnen proberen een verbinding te downgraden van HTTPS naar HTTP om data te onderscheppen
  • Cookie hijacking: Zonder HSTS kunnen cookies via onbeveiligde verbindingen worden onderschept
  • Man-in-the-middle aanvallen: HSTS voorkomt dat aanvallers zich tussen de gebruiker en server kunnen positioneren
  • SSL stripping: Een aanvalstechniek waarbij HTTPS-verbindingen worden omgezet naar HTTP

HSTS Preload List

Browsers zoals Chrome, Firefox, Safari en Edge onderhouden een HSTS preload lijst. Websites op deze lijst worden automatisch via HTTPS bezocht, zelfs bij het allereerste bezoek. Dit elimineert de kwetsbaarheid die bestaat tijdens het eerste bezoek aan een website, voordat de HSTS-header is ontvangen.

Om op de preload lijst te komen, moet een website aan strikte eisen voldoen en kan de eigenaar de website aanmelden via hstspreload.org. Dit is een permanente beslissing die zorgvuldig moet worden overwogen.

Toepassingen van HSTS

E-commerce websites

Voor webshops en e-commerce platforms is HSTS essentieel om klantgegevens, betalingsinformatie en inloggegevens te beschermen. Door HSTS te implementeren, zorgen webshops ervoor dat alle transacties en klantinteracties via een beveiligde verbinding verlopen, wat het vertrouwen van klanten vergroot en voldoet aan compliance-eisen zoals PCI DSS.

Websites met inlogfunctionaliteit

Elke website waar gebruikers inloggen met gebruikersnaam en wachtwoord moet HSTS implementeren. Dit voorkomt dat inloggegevens via onbeveiligde verbindingen worden verstuurd en onderschept. Dit geldt voor:

  • Content management systemen (WordPress, Webflow)
  • Klantportalen en dashboards
  • Webapplicaties met gebruikersaccounts
  • Intranet en bedrijfsapplicaties

Financiële diensten en banken

Banken, verzekeraars en andere financiële instellingen gebruiken HSTS als standaard beveiligingsmaatregel. Gezien de gevoelige aard van financiële gegevens en transacties is HSTS hier niet alleen aanbevolen maar vaak ook wettelijk verplicht onder verschillende regelgevingen.

Overheidswebsites

Veel overheden wereldwijd verplichten het gebruik van HSTS op alle overheidswebsites om burgergegevens te beschermen. In Nederland en de EU wordt dit gestimuleerd door richtlijnen voor informatiebeveiliging en privacy-wetgeving zoals de AVG.

API's en webservices

HSTS is ook van toepassing op API's en webservices die gevoelige data uitwisselen. Door HSTS te implementeren op API-endpoints, wordt ervoor gezorgd dat alle communicatie tussen applicaties en services versleuteld verloopt.

Implementatie in verschillende omgevingen

HSTS kan op verschillende niveaus worden geïmplementeerd:

  • Webserver niveau: Configuratie in Apache, Nginx, IIS of andere webservers
  • Application niveau: Via applicatiecode in frameworks zoals Laravel, Django, of Express.js
  • CDN niveau: Configuratie via Content Delivery Networks zoals Cloudflare of Fastly
  • Load balancer niveau: Implementatie op infrastructuurniveau voor grote applicaties

Best practices voor HSTS implementatie

Bij het implementeren van HSTS zijn er enkele belangrijke aanbevelingen:

  • Begin met een korte max-age waarde (bijvoorbeeld 300 seconden) om te testen
  • Zorg dat alle subdomeinen correct HTTPS ondersteunen voordat je includeSubDomains gebruikt
  • Verhoog de max-age geleidelijk naar minimaal 1 jaar (31536000 seconden)
  • Test grondig voordat je je website aanmeldt voor de preload lijst
  • Zorg voor geldige SSL/TLS certificaten op alle (sub)domeinen
  • Monitor certificaat verloopdatums om uitval te voorkomen

Veelgestelde vragen

HTTPS is het beveiligde protocol dat zorgt voor versleutelde communicatie tussen browser en server, terwijl HSTS een beveiligingsmechanisme is dat browsers dwingt om altijd HTTPS te gebruiken. Met alleen HTTPS kan een gebruiker nog steeds een onbeveiligde HTTP-verbinding maken als ze http:// intypen of op een oude link klikken. HSTS voorkomt dit door de browser te instrueren om automatisch alle verzoeken naar HTTPS te converteren, zelfs voordat er contact met de server wordt gemaakt.

Kortom: HTTPS is de versleutelde verbinding zelf, HSTS zorgt ervoor dat deze versleutelde verbinding altijd wordt gebruikt.

Ja, maar dit is gecompliceerd en tijdrovend. Je kunt HSTS uitschakelen door de max-age waarde op 0 te zetten, maar browsers die de oude HSTS-header al hebben ontvangen, blijven de oude regel volgen totdat de oorspronkelijke max-age periode is verlopen. Dit kan tot een jaar duren als je een lange max-age had ingesteld.

Als je website op de HSTS preload lijst staat, is uitschakelen nog moeilijker. Je moet dan een verwijderingsverzoek indienen, wat maanden kan duren voordat het in alle browsers is doorgevoerd. Daarom is het belangrijk om HSTS zorgvuldig te testen voordat je het permanent activeert, en vooral voordat je je aanmeldt voor de preload lijst.

Tip: Test altijd eerst met een korte max-age periode (bijvoorbeeld 5 minuten) voordat je overgaat op langere periodes.

Als je SSL/TLS-certificaat verloopt terwijl HSTS actief is, kunnen gebruikers je website helemaal niet meer bereiken. Omdat HSTS browsers dwingt om alleen via HTTPS te verbinden en geen uitzonderingen toestaat, krijgen gebruikers een harde beveiligingsfout die ze niet kunnen omzeilen (in tegenstelling tot normale SSL-waarschuwingen).

Dit maakt het cruciaal om:

  • Je SSL-certificaten tijdig te vernieuwen (bij voorkeur geautomatiseerd via Let's Encrypt of vergelijkbare diensten)
  • Monitoring in te stellen voor certificaat verloopdatums
  • Waarschuwingen te configureren minimaal 30 dagen voor verloop
  • Een noodprocedure te hebben voor snelle certificaatvernieuwing

Veel hosting providers en CDN's bieden automatische certificaatvernieuwing aan, wat het risico op uitval door verlopen certificaten sterk vermindert.

Auteur & updates

Auteur: Wouter
Publicatiedatum: 16-02-2026
Laatste update: 16-02-2026