HSTS für Vercel konfigurieren
Schritt-für-Schritt-Anleitung: HTTP Strict Transport Security auf Vercel einrichten, Preload beantragen und Preview Deployments sicher handhaben.
HSTS auf Vercel
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. Vercel erzwingt HTTPS automatisch für alle Deployments — der HSTS-Header muss dennoch manuell gesetzt werden.
Obwohl Vercel HTTPS erzwingt, fehlt ohne expliziten HSTS-Header der Schutz vor SSL-Stripping-Angriffen beim ersten Besuch. Erst mit dem HSTS-Header und Preload-Registrierung ist Ihre Domain auch beim allerersten Aufruf geschützt — der Browser verbindet sich dann nie unverschlüsselt.
HSTS-Header per vercel.json setzen
Der einfachste Weg: Fügen Sie den HSTS-Header in die vercel.json im Projekt-Root ein. Das Source-Pattern /(.*) wendet den Header auf alle Responses an. Alternativ können Sie HSTS auch per Edge Middleware setzen, wenn Sie bereits eine middleware.ts verwenden.
// vercel.json — HSTS mit Preload
{
"headers": [
{
"source": "/(.*)",
"headers": [
{
"key": "Strict-Transport-Security",
"value": "max-age=31536000; includeSubDomains; preload"
}
]
}
]
} // middleware.ts — HSTS per Edge Middleware
import { NextResponse } from 'next/server';
import type { NextRequest } from 'next/server';
export function middleware(request: NextRequest) {
const response = NextResponse.next();
response.headers.set(
'Strict-Transport-Security',
'max-age=31536000; includeSubDomains; preload'
);
return response;
} HSTS ist ein statischer Header — Edge Middleware bietet hier keinen Vorteil. Nutzen Sie vercel.json für HSTS und reservieren Sie die Middleware für dynamische Header wie CSP-Nonces.
Preview Deployments berücksichtigen
Vercel erstellt für jeden Commit ein Preview Deployment unter einer eigenen Subdomain (z.B. projekt-abc123.vercel.app). HSTS mit includeSubDomains betrifft alle Subdomains — auch Preview URLs. Stellen Sie sicher, dass alle Ihre Subdomains HTTPS unterstützen, bevor Sie Preload beantragen.
vercel.app-Subdomains — Ihr HSTS-Header gilt nur für Ihre Custom Domain, nicht für die vercel.app-Domain. Prüfen Sie trotzdem alle eigenen Subdomains. Verifizieren und Preload beantragen
Nach dem Deployment prüfen Sie den HSTS-Header mit curl oder dem Wolf-Agents Web Security Check. Wenn der Header korrekt gesetzt ist, können Sie Ihre Domain bei hstspreload.org registrieren. Vercel CDN-Cache kann dazu führen, dass Änderungen erst nach dem nächsten Deployment sichtbar sind.
# HSTS-Header nach Deployment prüfen
curl -sI https://ihre-domain.de | grep -i strict-transport
# Erwartete Ausgabe:
strict-transport-security: max-age=31536000; includeSubDomains; preload
# Preload-Eignung prüfen
# https://hstspreload.org/?domain=ihre-domain.de Häufige Fehler
Preload ohne Subdomain-Prüfung
HSTS Preload mit includeSubDomains betrifft alle Subdomains. Prüfen Sie vor der Registrierung, dass alle Subdomains HTTPS unterstützen — auch solche, die nicht auf Vercel laufen.
Framework-Config überschreibt vercel.json
Wenn next.config.ts ebenfalls HSTS setzt, hat die Framework-Konfiguration Vorrang. Der Wert aus vercel.json wird ignoriert. Definieren Sie HSTS an genau einem Ort.
CDN-Cache verzögert Header-Änderungen
Vercels Edge Network cached Responses. Nach einer Änderung in vercel.json sehen Sie den neuen HSTS-Header erst nach einem neuen Deployment oder Cache-Invalidierung.
Compliance-Relevanz
HSTS ist eine Grundvoraussetzung für sichere Websites. PCI DSS fordert die ausschließliche Nutzung starker Kryptografie — HSTS stellt sicher, dass keine unverschlüsselten Verbindungen möglich sind. NIS2 verlangt Verschlüsselung für Daten in Transit. Der Wolf-Agents Web Security Check prüft HSTS inklusive Preload-Status und max-age-Wert.
Wie steht Ihre Domain bei HSTS?
Prüfen Sie es jetzt — kostenlos, ohne Registrierung, mit 166 Prüfpunkte.