- Ajoute les règles mod_rewrite pour forcer HTTPS - Gère les reverse proxies via X-Forwarded-Proto - Exclut le chemin Let's Encrypt .well-known/acme-challenge
29 lines
1.3 KiB
ApacheConf
29 lines
1.3 KiB
ApacheConf
<IfModule mod_rewrite.c>
|
|
RewriteEngine On
|
|
# Redirect HTTP to HTTPS, including behind reverse proxies
|
|
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/
|
|
RewriteCond %{HTTPS} off
|
|
RewriteCond %{HTTP:X-Forwarded-Proto} !https
|
|
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
|
|
</IfModule>
|
|
|
|
<IfModule mod_headers.c>
|
|
# Force HTTPS for one year
|
|
Header always set Strict-Transport-Security "max-age=31536000"
|
|
|
|
# Prevent MIME sniffing
|
|
Header always set X-Content-Type-Options "nosniff"
|
|
|
|
# Prevent clickjacking (also enforced via CSP frame-ancestors)
|
|
Header always set X-Frame-Options "DENY"
|
|
|
|
# Control referrer leakage
|
|
Header always set Referrer-Policy "strict-origin-when-cross-origin"
|
|
|
|
# Restrict browser features
|
|
Header always set Permissions-Policy "geolocation=(), microphone=(), camera=(), payment=(), usb=(), magnetometer=(), gyroscope=()"
|
|
|
|
# Content Security Policy (no unsafe-inline/unsafe-eval in script-src)
|
|
Header always set Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' https://organisationka.b-cdn.net; font-src 'self' https://fonts.gstatic.com; connect-src 'self'; frame-ancestors 'none'; base-uri 'self'; form-action 'self'; object-src 'none'"
|
|
</IfModule>
|