Die Einrichtung von HTTP/3 unter Windows Server 2022 mit IIS ist zwar nicht ganz so einfach, aber machbar. Ziel ist es, die Seitenladezeit und die Sicherheit zu verbessern, insbesondere für Nutzer mit langsamen oder instabilen Internetverbindungen. Außerdem ist es interessant zu sehen, wie die Website über QUIC kommuniziert. Die Aktivierung erfordert jedoch einige Registry-Anpassungen, PowerShell-Befehle und IIS-Einstellungen. Die korrekte Einrichtung kann etwas knifflig sein – beispielsweise müssen die TLS-Einstellungen perfekt sein und die Firewall-Regeln dürfen den UDP-Verkehr nicht blockieren. Manchmal sind bei bestimmten Konfigurationen ein oder zwei Neustarts erforderlich, aber letztendlich sollte Ihre Website in unterstützten Browsern über HTTP/3 erreichbar sein.
So aktivieren Sie die HTTP/3-Unterstützung in Windows Server 2022 IIS
Aktivieren Sie TLS 1.3 in der Registrierung – denn Windows macht es einem natürlich unnötig schwer.
HTTP/3 benötigt TLS 1.3, daher muss dieses zuerst aktiviert werden. Die Bearbeitung der Registry ist zwar etwas umständlich, aber notwendig. Beachten Sie, dass Sie hierfür Administratorrechte benötigen. Mit diesen Befehlen wird TLS 1.3 sowohl für Client als auch für Server aktiviert:
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Client" /v DisabledByDefault /t REG_DWORD /d 0 /f reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Client" /v Enabled /t REG_DWORD /d 1 /f reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Server" /v DisabledByDefault /t REG_DWORD /d 0 /f reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Server" /v Enabled /t REG_DWORD /d 1 /f
Sobald diese installiert sind, ist in der Regel ein Neustart erforderlich – und es empfiehlt sich, vorher mit Tools wie SSL Labs oder PowerShell-Befehlen zu überprüfen, ob TLS 1.3 aktiv ist.
HTTP/3-Unterstützung in IIS über Registrierungsbefehle aktivieren
Jetzt kommt der spaßige Teil. Sie fügen Registrierungsschlüssel hinzu, um IIS anzuweisen, HTTP/3 zu unterstützen:
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP\Parameters" /v EnableHttp3 /t REG_DWORD /d 1 /f reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP\Parameters" /v EnableAltSvc /t REG_DWORD /d 1 /f
Beachten Sie, dass die IIS-Konfigurationsoptionen in neueren Windows-Versionen manchmal in der Benutzeroberfläche angezeigt werden. Falls nicht, müssen Sie die Registry bearbeiten. Sie können diese Einstellung später mit Tools oder PowerShell überprüfen.
Aktivieren der QUIC Cipher Suite – PowerShell-Magie zur Unterstützung von HTTP/3
Dieser Teil ist etwas ungewöhnlich, aber Sie müssen die TLS-Verschlüsselungssuite für die QUIC-Unterstützung aktivieren. Führen Sie dazu folgenden Befehl in PowerShell mit Administratorrechten aus:
Enable-TlsCipherSuite -Name TLS_CHACHA20_POLY1305_SHA256 -Position 0
Nach dem Ausführen des Befehls überprüfen Sie, ob die Unterstützung aktiviert ist, indem Sie Folgendes ausführen:
(Get-TlsCipherSuite).Name | Select-String CHACHA
Wenn die Suite angezeigt wird, ist alles in Ordnung. Falls nicht, müssen Sie möglicherweise PowerShell oder sogar den Server neu starten, da Windows Änderungen manchmal nicht sofort anwendet.
Fügen Sie den HTTP/3-Header zur Antwort Ihrer Website hinzu.
Dadurch wird Browsern mitgeteilt, dass Ihre Website HTTP/3 unterstützt. Erstellen Sie in IIS einen neuen Header in Ihren Websitebindungen (oder verwenden Sie die Standardbindung).Dies ist über die grafische Benutzeroberfläche oder PowerShell möglich – hier die flexiblere PowerShell-Methode:
Import-Module WebAdministration $siteName ="Default Web Site" $headerName="alt-svc" $headerValue='h3=":443"; ma=86400; persist=1' Add-WebConfigurationProperty -Filter "system.webServer/httpProtocol/customHeaders" -PSPath IIS:\Sites\$siteName -Name.-AtElement @{name=$headerName;value=$headerValue}
Sobald dies eingestellt ist, antwortet IIS mit diesem Header und weist die Browser an, nach Möglichkeit HTTP/3 zu verwenden.
Stellen Sie sicher, dass der UDP-Datenverkehr für QUIC nicht blockiert wird – Firewall-Einstellungen
Dieser Aspekt wird oft übersehen. Da HTTP/3 über UDP-Port 443 läuft, benötigt die Windows-Firewall Regeln, die diesen Datenverkehr zulassen. Prüfen Sie, ob die Regel „World Wide Web Services (QUIC Traffic-In)“ aktiviert ist.
Get-NetFirewallRule | ?{ $_. DisplayName -eq "World Wide Web Services (QUIC Traffic-In)" } | select name, enabled, status
Falls es deaktiviert ist, aktivieren Sie es mit:
Enable-NetFirewallRule -DisplayGroup "World Wide Web Services (QUIC Traffic-In)"
Falls die Regel fehlt, müssen Sie möglicherweise eine neue eingehende UDP-Regel erstellen, um Port 443 für UDP zu öffnen.
Starten Sie das Gerät neu und testen Sie, ob es funktioniert.
Sobald alles eingerichtet ist, starten Sie den Server neu. Rufen Sie nach dem Neustart Ihre Website auf, öffnen Sie die Entwicklertools in Chrome oder Edge ( F12), wechseln Sie zum Tab „Netzwerk“, aktualisieren Sie die Seite und prüfen Sie die Spalte „Protokoll“.Wenn dort „h3“ angezeigt wird, verwendet Ihre Website HTTP/3. Manchmal wartet die Website lediglich auf den Cache oder eine vollständige Aktualisierung, um die neuen Header zu übernehmen. Lassen Sie sich also nicht entmutigen, wenn die Änderungen nicht sofort sichtbar sind.
Ja, es ist ein etwas aufwendiger Prozess, aber zu sehen, wie die Website über QUIC kommuniziert, ist wirklich befriedigend. Ich bin mir nicht sicher, warum es manchmal funktioniert, aber bei manchen Konfigurationen reichen ein Neustart und ein paar Anpassungen in der Registry. Wichtig ist, dass TLS 1.3 aktiviert, die notwendigen Registry-Schlüssel gesetzt und die Firewall-Regeln korrekt konfiguriert sind. Wenn alles passt, verwenden Browser, die HTTP/3 unterstützen (wie Edge oder Chrome), es automatisch.