HTTP/3 aktivieren: nginx, LiteSpeed, Cloudflare, Apache & Plesk
HTTP/3 ist kein Schalter, den man an einer Stelle umlegt. Je nach Setup liegt er an einer völlig anderen Stelle – und in etwa der Hälfte der Fälle, die wir sehen, ist er längst umgelegt und scheitert an etwas anderem: an UDP.
Zuerst: Woran es meistens wirklich liegt
HTTP/3 läuft über QUIC auf UDP Port 443 – nicht über TCP. Das ist der entscheidende Unterschied zu HTTP/1.1 und HTTP/2. Sehr viele Firewalls, Security-Groups und Hosting-Standardkonfigurationen lassen TCP/443 durch und blocken UDP/443 stillschweigend.
Das Ergebnis sieht dann genau so aus wie im h3check: Die Seite kündigt HTTP/3 per
Alt-Svc an, aber es kommt keine Verbindung zustande. Der Server ist richtig
konfiguriert, das Paket kommt nur nie an. Bevor du an der Serverkonfiguration schraubst,
prüfe deshalb:
ufw allow 443/udp # oder firewall-cmd --permanent --add-port=443/udp && firewall-cmd --reload
Bei Cloud-Anbietern zusätzlich die Security Group bzw. Netzwerk-Firewall: AWS, Hetzner Cloud, DigitalOcean und Azure haben alle eine eigene Ebene, die unabhängig von der Server-Firewall filtert.
nginx
HTTP/3 ist ab nginx 1.25.0 ohne Fremdmodul dabei. Ältere Versionen brauchen
einen Patch – wenn deine Distribution noch 1.22 ausliefert, ist ein Upgrade der einfachere Weg.
Prüfen mit nginx -V, ob --with-http_v3_module gesetzt ist.
server {
listen 443 ssl;
listen 443 quic reuseport; # reuseport nur EINMAL pro Port im ganzen Config-Set
listen [::]:443 quic reuseport;
http2 on;
http3 on;
ssl_protocols TLSv1.3; # QUIC setzt TLS 1.3 zwingend voraus
add_header Alt-Svc 'h3=":443"; ma=86400' always;
}
Die zwei häufigsten Fehler: reuseport steht in mehreren Server-Blöcken (nginx
startet dann nicht) – es gehört genau einmal pro Port in die gesamte Konfiguration. Und der
Alt-Svc-Header fehlt, weil always vergessen wurde; dann liefert
nginx ihn bei Fehlerseiten und Redirects nicht aus.
LiteSpeed & OpenLiteSpeed
Hier ist HTTP/3 in der Regel bereits aktiv – LiteSpeed hat QUIC früher unterstützt als alle anderen. Kontrollieren kannst du es in der WebAdmin-Konsole unter Listeners → SSL → QUIC sowie unter Server Configuration → Tuning → QUIC. Steht dort Not Set, gilt der Standard, und der ist „an".
Wenn LiteSpeed läuft und HTTP/3 trotzdem nicht funktioniert, ist es fast immer UDP/443 – siehe oben.
Apache
Ehrliche Antwort: Apache httpd kann kein HTTP/3. mod_h2 liefert
HTTP/2, mehr nicht. Ein offizielles HTTP/3-Modul gibt es im Mainline-Zweig nicht.
Wer HTTP/3 mit Apache im Backend will, stellt etwas davor, das QUIC spricht: nginx als Reverse Proxy, LiteSpeed statt Apache, oder ein CDN wie Cloudflare. Der Apache dahinter bleibt dabei unverändert bei HTTP/1.1 – das ist völlig in Ordnung, weil der Gewinn von HTTP/3 auf der Strecke zwischen Besucher und Edge entsteht, nicht dahinter.
Cloudflare & andere CDNs
Bei Cloudflare ist es ein Schalter: Dashboard → Speed → Optimization → Protocol Optimization → HTTP/3 (with QUIC). Voraussetzung ist, dass der DNS-Eintrag proxied ist (orangene Wolke) – bei „DNS only" geht der Traffic an Cloudflare vorbei und HTTP/3 kommt nie zum Einsatz.
Der angenehme Nebeneffekt: Dein Origin-Server muss dafür gar nichts können. Ob dahinter Apache, nginx oder sonst was läuft, ist dem Besucher egal – er spricht mit dem Edge.
Plesk
Plesk selbst hat keinen HTTP/3-Schalter. Entscheidend ist, welcher Webserver darunter läuft:
- nginx als Reverse Proxy (Plesk-Standard): Direktiven wie oben unter Websites & Domains → Apache & nginx Settings → Additional nginx directives eintragen. Wichtig ist, dass Plesks nginx neu genug ist.
- LiteSpeed über die Plesk-Extension: QUIC ist nach der Installation standardmäßig aktiv, kein weiterer Eingriff nötig.
Danach prüfen
Nach jeder Änderung: Dienst neu starten (nicht nur reload – bei Änderungen an
listen-Direktiven reicht ein Reload oft nicht) und mit dem
HTTP/3 Check gegentesten. Wichtig ist, dass beide Zeilen im Ergebnis
auf „JA" stehen: „angekündigt" allein heißt nur, dass der Header gesetzt ist – erst
„funktioniert" beweist eine echte QUIC-Verbindung.