如何在运行IIS网站的Windows Server上启用HTTP/3?
在Windows Server的IIS上启用HTTP/3协议
前提条件
- 服务器必须运行Windows Server 2022及以上版本(HTTP/3仅在该版本及后续的IIS中支持)
- 网站已配置HTTPS绑定(HTTP/3基于QUIC协议,强制要求加密传输)
- 启用TLS 1.3(QUIC依赖TLS 1.3,Windows Server 2022默认可能未开启)
步骤1:启用TLS 1.3
通过注册表配置开启TLS 1.3:
- 打开注册表编辑器(
regedit) - 导航到路径:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols - 分别创建
TLS 1.3\Client和TLS 1.3\Server两个子项(若已存在则跳过) - 在每个子项中创建两个DWORD(32位)值:
Enabled:设为1DisabledByDefault:设为0
- 重启服务器使配置生效
步骤2:安装IIS的HTTP/3功能
使用PowerShell执行以下命令安装HTTP/3组件:
Install-WindowsFeature -Name Web-Http3
安装完成后无需重启,组件会立即生效。
步骤3:为网站启用HTTP/3
方法1:通过IIS管理器界面配置
- 打开IIS管理器,选中目标网站
- 右键点击“绑定”,在弹出的绑定列表中找到HTTPS绑定,点击“编辑”
- 在编辑绑定窗口中,勾选“启用HTTP/3”选项,点击“确定”
方法2:通过命令行配置
使用appcmd命令修改网站的启用协议列表:
appcmd set site /site.name:"你的网站名称" /bindings.[protocol='https'].enabledProtocols:"http/1.1,http/2,http/3"
替换命令中的你的网站名称为实际网站名即可。
步骤4:验证HTTP/3是否生效
- 浏览器验证:打开Chrome/Firefox等支持HTTP/3的浏览器,按F12打开开发者工具,切换到“网络”面板,刷新页面后查看请求的“协议”列,若显示
h3则说明已生效 - 命令行验证:使用支持HTTP/3的curl工具执行:
curl -I --http3 https://你的网站域名
响应头中若包含alt-svc: h3=":443"; ma=86400则表示HTTP/3已正常启用
注意事项
- 确保服务器防火墙允许UDP 443端口的入站请求(QUIC基于UDP传输,默认HTTPS用TCP 443,需额外开放UDP端口)
- HTTP/3是客户端协商启用的,若客户端不支持会自动降级到HTTP/2或HTTP/1.1
- 若使用CDN或反向代理,需确保上游服务也支持HTTP/3,否则可能无法正常使用
内容的提问来源于stack exchange,提问作者Dave L
相关产品推荐
相关产品推荐

