h3check.de HTTP/3 · QUIC · Check
powered by

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:

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.

Wissen  ·  ← Zum HTTP/3 Check