Habilite la compatibilidad con HTTP/3 para IIS en Windows Server 2022
Windows Server 2022 presenta soporte nativo para el protocolo HTTP/3 que acelera la carga de las páginas del sitio web de IIS y mejora la seguridad. La característica más importante de HTTP/3 es que se basa en el protocolo de transporte QUIC (Quick UDP Internet Connections) que funciona sobre UDP. Los usuarios con una conexión a Internet lenta e inestable obtienen los mayores beneficios de HTTP/3. Veamos cómo habilitar la compatibilidad con HTTP/3 para un sitio web de Internet Information Service (IIS 10.0.20348+) que se ejecuta en Windows Server 2022.
Para habilitar la compatibilidad con HTTP/3 en IIS, debe configurar algunas opciones en Windows:
Habilite TLS 1.3 en Windows Server (requerido para usar QUIC y HTTP/3);
Agregue el paquete de cifrado TLS_CHACHA20_POLY1305_SHA256 para las conexiones TLS;
Agregue un código de respuesta HTTP/3 al encabezado HTTP de su sitio web de IIS.
Edite algunas opciones de registro para habilitar la compatibilidad con TLS 1.3 en Windows Server (en este ejemplo, habilitamos la compatibilidad con servidor y cliente TLS 1.3).
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 /fAquí hay un artículo sobre cómo habilitar y deshabilitar las versiones de TLS usando GPO.
Habilite la compatibilidad con HTTP/3 para IIS:
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 /fLuego habilite un cifrado TLS especial usando el comando de PowerShell:
Enable-TlsCipherSuite -Name TLS_CHACHA20_POLY1305_SHA256 -Position 0Asegúrese de que la compatibilidad con el conjunto de cifrado esté habilitada:
(Get-TlsCipherSuite).Name | Select-String CHACHALuego agregue HTTP/3 al encabezado de respuesta de su sitio web. Cree un sitio simple en IIS (puede usar un sitio web predeterminado para la prueba), vincule un certificado SSL al sitio web (puede usar un certificado de Windows autofirmado, pero su cliente debe confiar en él) y vincule el sitio web al puerto 443 (desde el menú Editar enlaces).
Tenga en cuenta que han aparecido algunas opciones adicionales (Desactivar QUIC, Desactivar TLS 1.3 sobre TCP, Desactivar TLS heredado) en el formulario de vinculación del sitio web en IIS.
Luego abra la sección Encabezados de respuesta HTTP en la configuración del sitio web de IIS y agregue la siguiente opción a la lista de respuestas HTTP:
Nombre:
alt-svcValor:
h3=":443"; ma=86400; persist=1
Puede agregar esta opción de encabezado HTTP mediante PowerShell:
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 @{name=$headerName;value=$headerValue}Asegúrese de que el tráfico QUIC (Puerto 443/UDP) esté permitido en el Firewall de Microsoft Defender:
Get-NetFirewallRule | ?{ $_.DisplayName -eq "World Wide Web Services (QUIC Traffic-In)" }|select name,enabled, statusSi la regla está inactiva, habilite la regla de Firewall de Windows Defender mediante PowerShell:
Get-NetFirewallRule IIS-WebServerRole-QUIC-In-UDP|enable-netfirewallruleReinicie el servidor de Windows. Después del reinicio, asegúrese de que el sitio web de IIS responda a través de HTTP/3 (todos los navegadores modernos admiten el protocolo HTTP/3 de forma predeterminada).
Abra una página web de su sitio IIS en un navegador (utilicé Microsoft Edge integrado), habilite el modo Inspeccionar y vaya a la pestaña Red;
-
Agregue la columna Protocolo y actualice la página (
F5);
Asegúrese de que H3 esté especificado en la columna Protocolo. Significa que se utiliza HTTP/3 para conectarse al sitio web.





