Включить поддержку HTTP/3 для IIS на Windows Server 2022
В Windows Server 2022 представлена встроенная поддержка протокола HTTP/3 , который ускоряет загрузку страниц веб-сайта IIS и повышает безопасность. Наиболее важной особенностью HTTP/3 является то, что он основан на транспортном протоколе QUIC (Quick UDP Internet Connections), работающем поверх UDP. Пользователи с медленным и нестабильным подключением к Интернету получают наибольшую прибыль от HTTP/3. Давайте посмотрим, как включить поддержку HTTP/3 для веб-сайта службы информации Интернета (IIS 10.0.20348+), работающего на Windows Server 2022.
Чтобы включить поддержку HTTP/3 в IIS, вам необходимо настроить некоторые параметры в Windows:
Включите TLS 1.3 на Windows Server (требуется для использования QUIC и HTTP/3);
Добавьте набор шифров TLS_CHACHA20_POLY1305_SHA256 для TLS-соединений;
Добавьте код ответа HTTP/3 в заголовок HTTP вашего веб-сайта IIS.
Отредактируйте некоторые параметры реестра, чтобы включить поддержку TLS 1.3 на Windows Server (в этом примере мы включаем поддержку клиента и сервера 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 /fВот статья о том, как включать и отключать версии TLS с помощью GPO.
Включите поддержку HTTP/3 для 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 /fЗатем включите специальный шифр TLS с помощью команды PowerShell:
Enable-TlsCipherSuite -Name TLS_CHACHA20_POLY1305_SHA256 -Position 0Убедитесь, что поддержка набора шифров включена:
(Get-TlsCipherSuite).Name | Select-String CHACHAЗатем добавьте HTTP/3 в заголовок ответа вашего веб-сайта. Создайте простой сайт в IIS (вы можете использовать для теста веб-сайт по умолчанию), привяжите к веб-сайту сертификат SSL (вы можете использовать самозаверяющий сертификат Windows, но ваш клиент должен ему доверять) и привяжите веб-сайт к порту. 443 (из меню Редактировать привязки).
Обратите внимание, что некоторые дополнительные параметры (Отключить QUIC, Отключить TLS 1.3 через TCP, Отключить устаревший TLS) появились в форме привязки веб-сайта в IIS.
Затем откройте раздел Заголовки HTTP-ответов в настройках веб-сайта IIS и добавьте следующий параметр в список HTTP-ответов:
Имя:
alt-svcЦенить:
h3=":443"; ma=86400; persist=1
Вы можете добавить этот параметр HTTP-заголовка с помощью 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}Убедитесь, что трафик QUIC (порт 443/UDP) разрешен в брандмауэре Microsoft Defender:
Get-NetFirewallRule | ?{ $_.DisplayName -eq "World Wide Web Services (QUIC Traffic-In)" }|select name,enabled, statusЕсли правило неактивно, включите правило брандмауэра Защитника Windows с помощью PowerShell:
Get-NetFirewallRule IIS-WebServerRole-QUIC-In-UDP|enable-netfirewallruleПерезапустите Windows-сервер. После перезагрузки убедитесь, что веб-сайт IIS отвечает по протоколу HTTP/3 (все современные браузеры по умолчанию поддерживают протокол HTTP/3).
Откройте веб-страницу вашего сайта IIS в браузере (я использовал встроенный Microsoft Edge), включите режим Проверка и перейдите на вкладку Сеть;
-
Добавьте столбец Протокол и обновите страницу (
F5);
Убедитесь, что в столбце «Протокол» указан H3. Это означает, что для подключения к сайту используется HTTP/3.





