Veel websites maken tegenwoordig gebruik van een beveiligde (versleutelde) verbinding via https. Vaak worden bezoekers bij het opvragen van een website doorgestuurd van een http-verbinding naar een https-verbinding. Via deze manier van doorsturen, kan het zijn dat er nog steeds misbruik wordt gemaakt van je domein of hosting. Om dit te voorkomen schakel je HSTS (HTTP Strict Transport Security) in voor je website.
HSTS
Via HSTS wordt aan alle browsers die jouw domein bezoeken, verteld dat ze in het vervolg altijd een https-verbinding moeten maken met de website. Hierdoor is het niet meer mogelijk om verbinding te maken via een standaard http-verbinding. Het voordeel hiervan is dat browsers alleen bij het eerste bezoek van de website nog doorgestuurd worden van http naar https. Daarna zal dit altijd via https gaan.
Voordelen van HSTS:
- Minder kans op misbruik van een niet-versleutelde verbinding.
- Minder laadtijd doordat er niet meer doorgestuurd hoeft te worden bij elk websiteverzoek.
Nadelen van HSTS:
- Wanneer niet correct geconfigureerd, kunnen het hoofddomein en subdomeinen onbereikbaar worden.
- (Sub)domeinen die niet gebruikmaken van SSL, kunnen niet meer worden bereikt via http.
Voordat je HSTS instelt, raden wij je aan de volgende punten te controleren:
- Er is een geldig SSL-certificaat voor het (sub)domein geïnstalleerd. (Verplicht)
- Alle links van in te laden bestanden, zoals stijl-bestanden en afbeeldingen, worden ingeladen via een https-verbinding. (Verplicht)
- Er staat een redirect ingesteld van http naar https. Tijdens de eerste keer dat de website wordt geladen, wordt de verbinding doorgestuurd naar https. Daarnaast zorgt dit ervoor dat oudere browsers, die geen HSTS ondersteunen, de verbinding wel doorsturen naar een https-verbinding. Lees in onze handleiding hoe je gebruikmaakt van https. (Optioneel)
HSTS-gebruik op VPS instellen
Bij Hostnet kun je HSTS op een VPS instellen. Bij een shared webhostingpakket, zoals Webhosting Start, is dit niet mogelijk.
HSTS Preload List
Wanneer je gebruikmaakt van de HSTS-header, gaat de verbinding altijd via https. De eerste keer kan dit nog via http gaan. Er bestaat een kleine kans dat kwaadwillenden de verbinding naar https proberen te kapen door een zogeheten man-in-the-middle-aanval.
Om dit te voorkomen, is er een HSTS Preload List. Door je domeinnaam toe te voegen aan deze lijst zorg je ervoor dat de browser zelf, al voordat de website is bezocht via die browser, bekend is met de HSTS-instelling van jouw domeinnaam. Staat je domeinnaam in de lijst? Dan wordt je domeinnaam altijd bezocht via https. Meer informatie en de voorwaarden voor preloading vind je op HSTS Preload List Submission.
HSTS gebruiken op subdomeinen
Met de optie 'includeSubDomains' zorg je ervoor dat niet alleen je hoofddomein, maar ook alle subdomeinen gebruikmaken van HSTS. Het is echter wel belangrijk dat je zeker weet dat je subdomeinen zijn beveiligd en dat dit geen problemen oplevert. Wanneer dit niet goed is ingesteld, zijn de subdomeinen niet meer bereikbaar.
HSTS instellen op een Unmanaged VPS met Plesk
Met een Unmanaged VPS kun je HSTS activeren via Plesk. Volg hiervoor de volgende stappen:
- Log via https://jouwdomeinnaam.tld:8443 in als beheerder op jouw VPS.
- Klik in het linkermenu op 'Domeinen'.
- Klik op de domeinnaam waarvoor je HSTS wilt activeren.
- Ga naar 'Hosting & DNS' en vervolgens naar 'Instellingen voor Apache en nginx'.
- Staat bij 'nginx-instellingen' de proxy-modus uitgevinkt? Volg dan de stappen onder 'HSTS instellen op een Managed VPS'. Is de proxy-modus aangevinkt? Vul dan de volgende code in bij 'Aanvullende opdrachten voor nginx':
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
- Klik op 'OK'.
De instellingen worden nu opgeslagen en zijn direct actief.
HSTS instellen op een Managed VPS
Als je een Managed VPS bij Hostnet hebt, is HSTS standaard beschikbaar. Je stelt dit in via het Plesk Control Panel. Volg hiervoor deze stappen:
- Log via https://jouwdomeinnaam.tld:8443 in als beheerder op jouw VPS.
- Klik in het linkermenu op 'Domeinen'.
- Klik op de domeinnaam waarvoor je HSTS wilt activeren.
- Ga naar 'Instellingen voor Apache en nginx'.
- Vink bij 'Additional headers', 'Aangepaste waarde invoeren' aan.
- Je krijgt nu een invulveld te zien. Voer hier deze code in:
Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
- Klik op 'OK'.
De instellingen worden nu opgeslagen en zijn direct actief.
HSTS instellen op een Unmanaged VPS zonder Plesk
Op een Unmanaged VPS stel je HSTS in via de configuratiebestanden die je op de server gebruikt. Voorbeelden voor APACHE en NGINX vind je hieronder:
Apache:
Zorg er eerst voor dat het mogelijk is om de Apache module mod_headers te gebruiken. Open het configuratiebestand in de map /etc/apache2/httpd.conf en voeg de volgende regel code toe:
LoadModule headers_module modules/mod_headers.so
Voeg de volgende regel toe aan het vhost-bestand van het domein. Dit bestand vind je in de volgende map:
- Ubuntu: '/etc/apache2/sites-available'
- CentOS: '/etc/httpd/sites-available'
<VirtualHost *:443> Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" </VirtualHost>
NGINX:
Voeg de volgende regel toe in het configuratiebestand van het domein. Dit bestand vind je in de volgende map: Ubuntu en CentOS: '/etc/nginx/sites-available'.
add_header Strict-Transport-Security max-age=31536000; includeSubDomains; preload
Aangezien je de configuratie voor https-verbindingen wijzigt, doe je dit in het configuratiebestand waar de instellingen voor een https-verbinding staan. Dit vind je in het gedeelte waar de standaard https-poort '443' wordt genoemd