我在 Windows Server 2019 上运行 IIS Web 服务器,我需要对某些特定站点禁用 HTTP/2,同时对其他站点保持启用状态。
我知道我可以通过设置以下注册表项来全局禁用 HTTP/2:
对于 TLS:
HKLM:\System\CurrentControlSet\Services\HTTP\Parameters
EnableHttp2Tls (DWORD) = 0
对于明文(非 TLS):
HKLM:\System\CurrentControlSet\Services\HTTP\Parameters
EnableHttp2Cleartext (DWORD) = 0
但是,这种方法会禁用服务器上所有站点的 HTTP/2。有没有办法使用 PowerShell 或任何其他方法对 IIS 中的特定站点或应用程序禁用 HTTP/2?
我查看了 IIS 配置设置,但找不到在站点级别控制 HTTP/2 的选项。
任何实现此目的的指导或脚本将不胜感激。
环境:
Windows Server 2019 IIS 10
我尝试过的:
修改全局注册表项(在服务器范围内禁用 HTTP/2) 通过 PowerShell 搜索 IIS 站点级设置
通过在命令中设置
-SslFlag
属性,您可以实现您的需求,如下所示:
New-IISSiteBinding -Name "mySite" -BindingInformation "*:443:" -CertificateThumbPrint "xxxx" -CertStoreLocation "your:\cert\path" -Protocol https -SslFlag "DisableHTTP2"