Поиск по сайту:

Включить поддержку 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:

  1. Включите TLS 1.3 на Windows Server (требуется для использования QUIC и HTTP/3);

  2. Добавьте набор шифров TLS_CHACHA20_POLY1305_SHA256 для TLS-соединений;

  3. Добавьте код ответа 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).

  1. Откройте веб-страницу вашего сайта IIS в браузере (я использовал встроенный Microsoft Edge), включите режим Проверка и перейдите на вкладку Сеть;

  2. Добавьте столбец Протокол и обновите страницу (

    F5

    );

  3. Убедитесь, что в столбце «Протокол» указан H3. Это означает, что для подключения к сайту используется HTTP/3.

Статьи по данной тематике