如何在IIS上启用HTTP/3?

utugiqy6  于 2022-12-13  发布在  其他
关注(0)|答案(1)|浏览(490)

新的HTTP/3协议应该比HTTP/2更快、更安全。如何在运行IIS网站的Windows Server上启用它?

rpppsulh

rpppsulh1#

在撰写本文时,HTTP/3仅在Windows Server 2022上受支持。如果您使用的是任何以前的版本,恐怕您的运气不好。
假设您使用的是Windows Server 2022,下面介绍了如何启用它。

步骤1:更新Windows注册表

将以下文本复制并粘贴到一个新的.reg文件中。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Client]
"DisabledByDefault"=dword:00000000
"Enabled"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.3\Server]
"DisabledByDefault"=dword:00000000
"Enabled"=dword:00000001

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP\Parameters]
"EnableHttp3"=dword:00000001
"EnableAltSvc"=dword:00000001

x1c 0d1x保存后,在Windows Server 2022上双击或使用reg.exe执行。

步骤2:启用TLS加密

注意:根据其他用户的反馈,此步骤 * 可能是可选的 *。但是,我需要在安装时启用它。
以管理员身份打开PowerShell以启用TLS_CHACHA20_POLY1305_SHA256密码套件。在PowerShell中执行以下命令:Enable-TlsCipherSuite -Name TLS_CHACHA20_POLY1305_SHA256 -Position 0

步骤3:允许端口443上的UDP连接

HTTP/3使用QUIC协议,该协议使用 * 端口443* 上的传入UDP连接。如果您使用防火墙,则需要允许连接。以下是该规则在Windows防火墙中的外观:第一次

步骤4:将HTTP/3响应标头添加到IIS

HTTP/3要求IIS中有一些特殊的响应头。请选择网站或IIS中的计算机,然后选择“HTTP响应头”。
使用名称alt-svc和值h3=":443"; ma=86400; persist=1建立新的回应信头。
第一次
好了!现在测试一下以确保HTTP/3在您的浏览器中正常工作。许多现代浏览器都支持HTTP/3,因此您不需要更改任何配置。但是,有一点需要注意的是HTTP/3 * 只在HTTPS连接 * 上工作,因此如果您使用HTTP加载网站,它将无法工作。请确保在IIS中将网站配置为使用HTTPS协议。

通过浏览器的开发工具,你可以知道HTTP/3何时运行。打开开发工具,点击网络选项卡,注意protocol列。Chrome 108.0.5359.94截图:

Firefox 107.0.1屏幕截图:

指令集

故障排除提示

  • 重新启动Windows 2022服务器
  • 请确保网站是通过HTTPS加载的!您在浏览器中看到锁图标了吗?
  • 完全关闭浏览器(所有选项卡),并在加载网站之前重新启动
  • 测试时通过浏览器开发工具禁用浏览器缓存
  • 完全清除浏览器缓存并重新启动客户端计算机。

更多资源和参考资料:

相关问题