HSTS staat voor HTTP Strict Transport Security en is een serverinstelling, waarmee je forceert dat er een veilige verbinding wordt gebruikt. Door HSTS in te stellen, bescherm je jouw website tegen zogeheten downgrade attacks. Een website kan dan namelijk niet naar een onbeveiligde pagina worden omgeleid. Als je al SSL hebt, dan is HSTS een logische vervolgstap. Hier lees je hoe het werkt en waar je op moet letten als je het gaat instellen.
Hoe werkt het?
HSTS zorgt ervoor dat een browser controleert of er over een versleutelde HTTPS-verbinding wordt gemaakt met een website. Is dat niet zo, dan wordt de bezoeker vanzelf van HTTP naar HTTPS doorgestuurd. Is HTTPS niet mogelijk, dan wordt de verbinding geweigerd en krijgt de bezoeker een beveiligingsmelding te zien.
Onbeveiligde verbindingen worden dus eerst omgeleid naar beveiligde. De browser weet dankzij een HSTS Header dat het voor het domein in kwestie in het vervolg alleen nog maar via HTTPS verbinding mag maken. In deze header staat verder of dat daarnaast voor subdomeinen moet gelden en ook hoe lang deze instructie geldig moet zijn.
Geldigheidsduur bepalen
Wil je HSTS instellen, dan is het eerst van belang om te bepalen voor welke geldigheidsduur je dat wilt doen. Dat bepaal je met waarde die je bij max-age kiest. Merk op dat HSTS enkel zin heeft als je een waarde voor langere termijn invoert. De gebruikelijke waarde is daarom twee jaar. Het is echter sterk af te raden die waarde direct in te stellen.
Het is verstandig om eerst een waarde te kiezen die korter is, zoals vijf minuten. Dat betekent dat de bezoeker dan na het eerste bezoek vijf minuten je website alleen over HTTPS kan bereiken. Dit wordt bij ieder bezoek met deze geldigheidsduur verlengd. Bezoekt diegene na twee minuten de pagina weer, dan wordt het in dit geval dus weer op vijf minuten vanaf dat moment gezet.
Als je de waarde op vijf minuten hebt gezet, dan controleer je of alles nog naar verwachting werkt. Is dat het geval en ervaar je een week lang geen problemen, dan zet je de geldigheidsduur daarna op een week. Weer wacht je geruime tijd. Blijft alles goed werken? Zet het op een maand en wacht weer af. Pas als je dit proces hebt doorlopen en volledig zeker weet dat alles werkt zoals het moet, dan stel je het voor twee jaar in.
Subdomeinen
Onze HSTS-optie in DirectAdmin voegt includeSubdomains aan de header toe. De browser wordt dus verteld dat ook subdomeinen alleen over HTTPS mogen worden benaderd. Als je HSTS via DirectAdmin activeert, dan dien je dus te zorgen dat al je subdomeinen een geldig SSL-certificaat hebben. Voor subdomeinen die naar ons verwijzen, regelen wij dat. Verwijst je subdomein naar een server anders dan die van Antagonist, dan moet je daar zelf een SSL-certificaat instellen.
HSTS instellen
Als helder is wat HSTS is en hoe je met de geldigheidsduur om moet gaan, dan kun je als volgt HSTS instellen.
1. Log in op DirectAdmin van je hostingpakket.
2. Ga in het menu naar 'Accountbeheer' → 'Domeinbeheer'.
3. Klik op de domeinnaam waarvoor je HSTS wilt instellen.
4. Selecteer achter 'Enable HSTS' de gewenste geldigheidsduur en klik daarna op 'Bewerken'.
De waarde bepaalt hoe lang iemand je website enkel over HTTPS kan benaderen en wordt bij ieder bezoek met diezelfde geldigheidsduur verlengd. Kies daarom eerst vijf minuten, test zorgvuldig en bouw langzaam op.
HSTS preload list
Als een website voor het eerst wordt bezocht, dan maakt een browser initieel een verbinding via HTTP. Een browser weet op voorhand namelijk niet of HSTS aan staat. Het risico van deze HTTP-verbinding is dat het vatbaar is voor downgrade attacks.
Om die reden bestaat er de HSTS Preload List. Als je domeinnaam op een HSTS-lijst staat, dan weet een ondersteunende browser direct dat het enkel over HTTPS een verbinding mag maken.
Om je domeinnaam op die lijst te plaatsen, kun je via hier een verzoek indienen. Je moet dan ook, nadat je eerst uitgebreid met lagere waardes hebt getest, in DirectAdmin de waarde '2 years, preload' kiezen.