Kestrel配置SSL证书时谷歌浏览器报错ERR_HTTP2_INADEQUATE_TRANSPORT_SECURITY

啊老师 站长本人 1月前 289

在ASP.net环境下的Kestrel给网站配置SSL证书时,发现谷歌浏览器报错ERR_HTTP2_INADEQUATE_TRANSPORT_SECURITY。而Safari浏览器却正常。手机上的谷歌浏览器也正常。

服务器系统是Windows Server 2012,在网上找搜了一圈也没找到解决办法。最后还是看了官方的文档:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/servers/kestrel?view=aspnetcore-2.2#kestrel-options 虽然看得一知半解,但还是找到问题的关键。错误提示HTTP2错误,那就把HTTP2禁用了。在Kestrel配置里面,强制为Http1。然后重启一下。

  "Endpoints": {
    "Https": {
      "Url": "https://*:443",
      "Protocols": "Http1"
    }
  }

ListenOptions.Protocols

Protocols 属性建立在连接终结点上或为服务器启用的 HTTP 协议(HttpProtocols)。 从 HttpProtocols 枚举向 Protocols 属性赋值。

表 2
HttpProtocols 枚举值允许的连接协议
Http1仅 HTTP/1.1。 可以在具有 TLS 或没有 TLS 的情况下使用。
Http2仅 HTTP/2。 仅当客户端支持先验知识模式时,才可以在没有 TLS 的情况下使用。
Http1AndHttp2HTTP/1.1 和 HTTP/2。 HTTP/2 需要 TLS 和应用程序层协议协商 (ALPN) 连接;否则,连接默认为 HTTP/1.1。

Github上有大神说是服务器版本太低,ALPN出问题,必须要禁用HTTP/2,(https://github.com/dotnet/aspnetcore/issues/16811)。具体原因我就不深究了,只要能解决问题就行。希望碰到ERR_HTTP2_INADEQUATE_TRANSPORT_SECURITY错误的同学,使用我的解决方法可以搞定。

axure商城
签名:WordPress资深老用户,用过的插件和主题连起来可以绕地球一圈!
最新回复 (0)
    • WP中文网 - WordPress中文站
      2
        登录 注册 QQ登录