Chrome zegt dat je een site nu niet kunt bezoeken omdat hij HSTS gebruikt, zonder knop om door te gaan? Lees wat HSTS is, waarom dat zo is en hoe de beheerder het oplost.
HSTS (HTTP Strict Transport Security) is een instelling waarmee een website tegen browsers zegt: bezoek mij de komende tijd alléén via een geldige https-verbinding. De site stuurt daarvoor de header Strict-Transport-Security mee, met een geldigheidsduur (max-age). De browser onthoudt dat. Sommige domeinen staan zelfs vooraf in een lijst die in de browser is ingebouwd: de HSTS-preloadlijst.
Gaat er daarna iets mis met het certificaat (verlopen, verkeerde naam, onbekende uitgever), dan toont de browser de gewone certificaatwaarschuwing, maar zónder de knop om toch door te gaan. Dat is bewust: HSTS bestaat juist om te voorkomen dat iemand je met een vals certificaat naar een nagemaakte site lokt en jij dan doorklikt.
De melding zegt dus niet dat HSTS het probleem is. HSTS is de reden dat je niet kunt doorklikken; de echte oorzaak is een certificaatfout. Die staat in de foutcode onderaan de pagina.
NET::ERR_CERT_DATE_INVALID of NET::ERR_CERT_COMMON_NAME_INVALID: dat is de eigenlijke fout. Zie ERR_CERT_DATE_INVALID en ERR_CERT_COMMON_NAME_INVALID.Menunamen kunnen per versie of toestel iets anders heten. Loop de stappen op volgorde af en stop zodra het werkt.
Klik op Geavanceerd of op de foutcode. Die vertelt wat er met het certificaat aan de hand is: verlopen, andere naam of onbekende uitgever. Daarnaar richt je de oplossing, niet naar HSTS.
Verschijnt de fout bij veel sites, controleer dan datum en tijd, probeer een ander netwerk en zet een HTTPS-scan van je antivirus tijdelijk uit. Op openbaar wifi rond je eerst het inlogportaal af. Bij sites met HSTS valt een onderschept certificaat sneller op, en dat is juist goed.
Ligt het aan één site, dan heeft die een certificaatprobleem dat alleen de beheerder kan oplossen. Chrome geeft zelf aan dat het vaak tijdelijk is. Probeer het later opnieuw en meld het aan de eigenaar, met de foutcode.
De enige echte oplossing is een geldig certificaat voor alle namen van de site. Controleer de vervaldatum en de namen. Is het verlopen, volg dan SSL-certificaat verlopen: vernieuwen.
openssl s_client -connect domein.nl:443 -servername domein.nl </dev/null 2>/dev/null | openssl x509 -noout -dates -subject -ext subjectAltNameControleer of en hoe je site HSTS instelt. includeSubDomains betekent dat álle subdomeinen ook een geldig certificaat moeten hebben, ook interne of vergeten subdomeinen. preload geeft aan dat je in de ingebouwde lijst van browsers wilt.
curl -sI https://domein.nl/ | grep -i strict-transport-security
# voorbeeld van een header:
# Strict-Transport-Security: max-age=31536000; includeSubDomainsHeb je zelf een testdomein of eigen apparaat dat ooit HSTS stuurde, dan kun je die onthouden instelling in Chrome wissen. Ga naar chrome://net-internals/#hsts, vul onder Delete domain security policies het domein in en klik op Delete. Dit werkt niet voor domeinen in de preloadlijst en lost geen certificaatfout op bij een site van een ander. Gebruik het niet om een waarschuwing bij een externe site te omzeilen.
Moet een subdomein tijdelijk zonder https, zet de header dan op max-age=0. Browsers die je site opnieuw via https bezoeken, vergeten HSTS dan. Wie de site niet opnieuw bezoekt, onthoudt de oude instelling tot de oude max-age is verlopen. Repareer het certificaat dus liever.
# nginx
add_header Strict-Transport-Security "max-age=0" always;Let op: Zoek niet naar trucs om de HSTS-blokkade bij een andere site te omzeilen. De blokkade beschermt je precies op het moment dat iemand een vals certificaat zou kunnen gebruiken.
Met de preload-optie en een aanmelding bij de preloadlijst wordt je domein ingebouwd in browsers. Bezoekers krijgen dan vanaf het allereerste bezoek alleen https. Dat is sterk, maar moeilijk terug te draaien:
chrome://net-internals/#hsts helpt niet voor domeinen in de preloadlijst.Zet preload en includeSubDomains dus pas aan als je zeker weet dat elk subdomein https heeft en dat de verlenging van certificaten bewaakt wordt.
Kom je er met deze stappen niet uit, of wil je het liever niet zelf doen? We kijken online mee of komen langs. Hulp op afstand kost €20 per uur; komen we langs, dan is de prijs op aanvraag. Je weet vooraf waar je aan toe bent.
Schrijf kort wat er misgaat en wat je al hebt geprobeerd. Kies of we bellen, online meekijken of langskomen.
Omdat de website heeft aangegeven dat hij alleen via een geldige https-verbinding bezocht mag worden. De browser houdt zich daaraan om je tegen nagemaakte sites te beschermen.
Alleen voor een eigen test- of thuisapparaat zonder preload. Bij een echte website blijft de certificaatfout bestaan; die moet de beheerder oplossen.
Nee. HSTS zorgt alleen dat je niet kunt doorklikken. De oorzaak is een certificaatfout, die je in de foutcode ziet.
Waarschijnlijk staat includeSubDomains aan en heeft dat subdomein geen geldig certificaat. Geef het subdomein een certificaat.
Hulp nodig van een mens? Website-onderhoud · Hosting en onderhoud · Gratis website-scan · Alle oplossingen