Beveiligingsheaders in ssl.conf
Gids voor het implementeren van essentiële beveiligingsheaders in uw Apache ssl.conf of virtuele hostconfiguratie.
Vereisten
Zorg ervoor dat mod_headers is ingeschakeld in Apache:```bash
sudo a2enmod headers
sudo systemctl restart apache2
## Aanbevolen configuratie
Voeg deze regels toe aan uw `/etc/apache2/mods-enabled/ssl.conf` of uw specifieke `<VirtualHost *:443>` blok.```apache
<IfModule mod_headers.c>
# 1. HSTS (Global HTTPS enforcement)
# Tells browsers to ONLY use HTTPS for the next 2 years, including subdomains.
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
# 2. X-Frame-Options
# Prevents clickjacking by forbidding frames from other sites.
Header always set X-Frame-Options "SAMEORIGIN"
# 3. X-Content-Type-Options
# Prevents MIME-sniffing exploits.
Header always set X-Content-Type-Options "nosniff"
# 4. Referrer Policy
# Controls how much referrer info is sent to other sites.
Header always set Referrer-Policy "strict-origin-when-cross-origin"
# 5. Content Security Policy (Basic)
# Prevents XSS by restricting source of content. Adjust 'self' as needed.
# Warning: Test this carefully before enabling!
# Header always set Content-Security-Policy "default-src 'self' http: https: data: blob: 'unsafe-inline'"
# 6. Permissions Policy (formerly Feature-Policy)
# Disables sensitive features like camera/mic.
Header always set Permissions-Policy "geolocation=(), midi=(), sync-xhr=(), microphone=(), camera=(), magnetometer=(), gyroscope=(), fullscreen=(self), payment=()"
# Remove Server version banner (Security by Obscurity)
Header unset Server
Header unset X-Powered-By
</IfModule>
Uitleg van headers
Strenge transportbeveiliging (HSTS)
max-age=63072000: 2 jaar in seconden.includeSubDomains: geldt ook voorblog.example.com.preload: Maakt verzending naar de HSTS-preloadlijst van Chrome mogelijk.
X-Frame-opties
SAMEORIGIN: alleen uw site kan uw site framen.DENY: Niemand kan uw site framen.
X-Content-Type-opties
nosniff: dwingt de browser om de Content-Type header te respecteren die door de server is verzonden.
Verwijzerbeleid
strikte-origin-when-cross-origin: verzendt de volledige URL naar dezelfde site, alleen het domein naar anderen, geen verwijzing naar HTTP.
Start Apache opnieuw
Start Apache altijd opnieuw op na het bewerken van configuraties:```bash sudo apachectl configtest # Check for syntax errors sudo systemctl restart apache2
## Controleer uw headers
Controleer uw score op [SecurityHeaders.com](https://securityheaders.com). Je moet streven naar een **A+**.
