HSTS für Astro konfigurieren
Schritt-für-Schritt-Anleitung: HTTP Strict Transport Security in Astro per Middleware oder Hosting-Konfiguration einrichten und Preload beantragen.
HSTS in Astro
HTTP Strict Transport Security (HSTS) weist Browser an, ausschließlich verschlüsselte HTTPS-Verbindungen zu verwenden. HSTS ist mit 15 von 166 Punkten ein wichtiger Faktor im Wolf-Agents Web Security Check. In Astro setzen Sie den Header per Middleware (SSR) oder auf dem Webserver bzw. der Hosting-Plattform (SSG).
Im SSR-Modus genuegt eine Zeile in src/middleware.ts. Im SSG-Modus konfigurieren Sie HSTS auf Nginx, Vercel oder Netlify. Wolf-Agents setzt HSTS produktiv per Astro-Middleware mit max-age=31536000, includeSubDomains und preload.
HSTS-Header konfigurieren
Waehlen Sie die passende Methode für Ihren Output-Modus: Die Middleware setzt HSTS dynamisch bei jedem Request (SSR/Hybrid). Für SSG nutzen Sie die Hosting-Konfiguration.
// src/middleware.ts -- HSTS per Middleware (SSR)
import { defineMiddleware } from 'astro:middleware';
export const onRequest = defineMiddleware(async (context, next) => {
const response = await next();
response.headers.set(
'Strict-Transport-Security',
'max-age=31536000; includeSubDomains; preload'
);
return response;
}); # Nginx -- HSTS für SSG-Deployments
server {
listen 443 ssl http2;
server_name ihre-domain.de;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always;
location / {
root /var/www/astro-site/dist;
try_files $uri $uri/index.html =404;
}
}
# HTTP-zu-HTTPS-Redirect
server {
listen 80;
server_name ihre-domain.de;
return 301 https://$host$request_uri;
} Hosting-Plattform-Varianten
Wenn Sie Astro auf einer Hosting-Plattform deployen, konfigurieren Sie HSTS über die plattformspezifische Header-Konfiguration. Diese Header gelten für alle Seiten -- unabhängig davon, ob sie statisch oder dynamisch gerendert werden.
// vercel.json -- HSTS für Vercel
{
"headers": [
{
"source": "/(.*)",
"headers": [
{
"key": "Strict-Transport-Security",
"value": "max-age=31536000; includeSubDomains; preload"
}
]
}
]
} # public/_headers -- HSTS für Netlify
/*
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload Verifizieren und Preload beantragen
Erstellen Sie einen Production-Build und prüfen Sie den HSTS-Header. Anschliessend registrieren Sie Ihre Domain bei hstspreload.org für die HSTS Preload List -- damit erzwingen Browser HTTPS bereits beim ersten Besuch.
# Production-Build und HSTS prüfen
npm run build && node dist/server/entry.mjs
curl -sI https://ihre-domain.de | grep -i strict-transport
# Erwartete Ausgabe:
# Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
# Preload-Status prüfen:
# https://hstspreload.org/?domain=ihre-domain.de preload beantragen. Häufige Fehler bei HSTS in Astro
HSTS auf HTTP statt HTTPS
HSTS darf nur über HTTPS gesendet werden. Browser ignorieren den Header auf HTTP-Verbindungen. Konfigurieren Sie einen HTTP-zu-HTTPS-Redirect vor dem HSTS-Header.
prerender=true verliert Middleware-HSTS
Prerenderte Seiten im Hybrid-Modus erhalten keinen Middleware-HSTS-Header. Setzen Sie HSTS zusätzlich auf dem Webserver, um alle Seiten abzudecken.
max-age zu niedrig
Ein max-age unter 31536000 (1 Jahr) reicht nicht für die Preload List. Der Wolf-Agents Web Security Check gibt bei weniger als 1 Jahr Abzuege.
includeSubDomains vergessen
Ohne includeSubDomains schützt HSTS nur die Hauptdomain. Subdomains wie api.ihre-domain.de bleiben über HTTP erreichbar -- ein Sicherheitsrisiko.
Compliance-Relevanz
HSTS ist eine Grundanforderung für NIS2-konforme Webauftritte und wird von PCI DSS 4.0 als Teil der Transport-Layer-Sicherheit erwartet. Der Wolf-Agents Web Security Check bewertet HSTS mit bis zu 15 Punkten -- inklusive Preload-Status, max-age-Bewertung und includeSubDomains-Prüfung.
Wie steht Ihre Domain bei HSTS?
Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.