You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ERR_HTTP2_INADEQUATE_TRANSPORT_SECURITY错误求助:Win10+VS环境问题

解决ERR_HTTP2_INADEQUATE_TRANSPORT_SECURITY错误的方案

这个错误的核心原因是HTTP2协议对TLS版本、加密套件的要求远高于HTTP1,即使证书本身有效,只要TLS配置不达标就会触发。以下是针对性的解决步骤:

1. 调整项目的Kestrel/IIS Express TLS配置

ASP.NET Core项目(Kestrel)

修改launchSettings.json,明确指定支持的TLS版本和HTTP协议:

{
  "profiles": {
    "YourProjectName": {
      "commandName": "Project",
      "dotnetRunMessages": true,
      "launchBrowser": true,
      "applicationUrl": "https://localhost:5001;http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development",
        "ASPNETCORE_Kestrel__EndpointDefaults__Protocols": "Http1AndHttp2",
        "ASPNETCORE_Kestrel__Https__TlsProtocols": "Tls12,Tls13"
      }
    }
  }
}

或者直接在Program.cs中硬编码Kestrel配置:

builder.WebHost.ConfigureKestrel(options =>
{
    options.ListenAnyIP(5001, listenOptions =>
    {
        listenOptions.UseHttps();
        listenOptions.Protocols = HttpProtocols.Http1AndHttp2;
        listenOptions.UseHttps(httpsOptions =>
        {
            httpsOptions.SslProtocols = SslProtocols.Tls12 | SslProtocols.Tls13;
        });
    });
});

IIS Express运行场景

找到项目根目录.vs\config\applicationhost.config文件,修改对应站点的https绑定,添加sslFlags="9"(1=TLS启用,8=HTTP2启用):

<site name="YourProjectName" id="2">
    <application path="/" applicationPool="Clr4IntegratedAppPool">
        <virtualDirectory path="/" physicalPath="YourProjectPath" />
    </application>
    <bindings>
        <binding protocol="https" bindingInformation="*:44300:localhost" sslFlags="9" />
    </bindings>
</site>

2. 修正Windows系统的TLS加密配置

Win10家庭版默认可能缺少HTTP2要求的加密套件,通过注册表调整:

  1. 打开注册表编辑器(运行regedit)
  2. 定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols
    • 新建TLS 1.2项,再创建Client和Server子项,每个子项添加两个DWORD值:
      • DisabledByDefault设为0
      • Enabled设为1
    • 同理创建TLS 1.3项(Win10 1903及以上版本支持),重复上述配置
  3. 定位到HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Cryptography\Configuration\SSL\00010002
    • 新建字符串值Functions,设置为符合HTTP2要求的加密套件列表:
      TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
      
  4. 重启系统生效

3. 验证证书的算法合规性

重新创建证书后,确认证书使用的是强加密算法:

  1. 打开证书管理器(运行certmgr.msc)
  2. 找到个人→证书中的localhost证书,右键→属性→详细信息
  3. 查看公钥项,确认密钥长度≥2048位,算法为RSA或ECDSA(禁止使用DSA等弱算法)

内容的提问来源于stack exchange,提问作者Abilio

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 22:57:21