当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 在 Windows Server 2022 上启用 IIS 的 HTTP/3 支持

作者:精品下载站 日期:2024-12-14 23:37:22 浏览:14 分类:玩电脑

在 Windows Server 2022 上启用 IIS 的 HTTP/3 支持


Windows Server 2022 引入了对 HTTP/3 协议的本机支持,这使得 IIS 网站页面的加载速度更快并提高了安全性。 HTTP/3 最重要的特征是它基于通过 UDP 工作的QUIC(快速 UDP 互联网连接)传输协议。互联网连接缓慢且不稳定的用户可以从 HTTP/3 中获得最高的利润。让我们看看如何为 Windows Server 2022 上运行的 Internet 信息服务 (IIS 10.0.20348+) 网站启用 HTTP/3 支持。

要在 IIS 中启用 HTTP/3 支持,您需要在 Windows 中配置一些选项:

  1. 在 Windows Server 上启用 TLS 1.3(使用 QUIC 和 HTTP/3 需要);

  2. 为 TLS 连接添加TLS_CHACHA20_POLY1305_SHA256密码套件;

  3. 将 HTTP/3 响应代码添加到 IIS 网站的 HTTP 标头。

编辑一些注册表选项以在 Windows Server 上启用 TLS 1.3 支持(在本示例中,我们启用 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

[玩转系统] 在 Windows Server 2022 上启用 IIS 的 HTTP/3 支持

这是一篇有关如何使用 GPO 启用和禁用 TLS 版本的文章。

启用 IIS 的 HTTP/3 支持:

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

然后使用 PowerShell 命令启用特殊的 TLS 密码:

Enable-TlsCipherSuite -Name TLS_CHACHA20_POLY1305_SHA256 -Position 0

确保已启用密码套件支持:

(Get-TlsCipherSuite).Name | Select-String CHACHA

[玩转系统] 在 Windows Server 2022 上启用 IIS 的 HTTP/3 支持

然后将 HTTP/3 添加到您网站的响应标头中。在 IIS 中创建一个简单的网站(您可以使用默认网站进行测试),将 SSL 证书绑定到网站(您可以使用自签名的 Windows 证书,但您的客户端必须信任它),并将网站绑定到端口 443(从编辑绑定菜单)。

请注意,一些附加选项(禁用 QUIC、禁用 TCP 上的 TLS 1.3、禁用旧版 TLS)已出现在 IIS 的网站绑定表单中。

[玩转系统] 在 Windows Server 2022 上启用 IIS 的 HTTP/3 支持

然后打开 IIS 网站设置中的 HTTP 响应标头 部分,并将以下选项添加到 HTTP 响应列表中:

  • 姓名:

    alt-svc
  • 价值:

    h3=":443"; ma=86400; persist=1

[玩转系统] 在 Windows Server 2022 上启用 IIS 的 HTTP/3 支持

您可以使用 PowerShell 添加此 HTTP 标头选项:

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}

确保 Microsoft Defender 防火墙允许 QUIC(端口 443/UDP)流量:

Get-NetFirewallRule | ?{ $_.DisplayName -eq "World Wide Web Services (QUIC Traffic-In)" }|select name,enabled, status

[玩转系统] 在 Windows Server 2022 上启用 IIS 的 HTTP/3 支持

如果该规则处于非活动状态,请使用 PowerShell 启用 Windows Defender 防火墙规则:

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 来连接网站。

    [玩转系统] 在 Windows Server 2022 上启用 IIS 的 HTTP/3 支持

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯