访问本地托管的 SPA 时,Google Chrome 中出现错误“ERR_HTTP2_INADEQUATE_TRANSPORT_SECURITY”

Posted

技术标签:

【中文标题】访问本地托管的 SPA 时,Google Chrome 中出现错误“ERR_HTTP2_INADEQUATE_TRANSPORT_SECURITY”【英文标题】:Error "ERR_HTTP2_INADEQUATE_TRANSPORT_SECURITY" in Google Chrome while accessing locally hosted SPA 【发布时间】:2020-09-12 00:08:29 【问题描述】:

我有一个本地托管的 SPA(Kestral/.Net 核心)。它使用 自签名证书 进行 HTTPS 通信(通过 Windows 10 中的服务器证书生成)。

它适用于 IE11,但是从谷歌浏览器访问时,显示错误 - ERR_HTTP2_INADEQUATE_TRANSPORT_SECURITY。

有什么线索可以解决这个问题吗?

到目前为止已完成故障排除:

    自定义密码套件顺序。 通过 Windows 注册表禁用 HTTP2。

【问题讨论】:

【参考方案1】:

要使用 HTTP/2,您必须使用 TLSv1.2 和 cannot use a number of blacklisted, less secure ciphers。这基本上意味着您必须使用其中一种 GCM 密码,例如 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256(尽管也支持其他较新的密码,例如 TLS_CHACHA20_POLY1305_SHA256)。

如果您只配置了较旧的密码,则 Chrome 将回退到 HTTP/1.1,或者,如果该密码不可用,则会显示该错误消息。

【讨论】:

谢谢巴里!长时间忙于其他事情后回来,只是强制服务器侦听 HTTP 1 并且能够克服这个错误。 只是想知道,如果您对如何制作上述较新的密码套装在这里使用有任何见解/意见?在这里,我在服务器上使用自签名证书,是否需要通过明确指定要使用的密码套件来生成证书?我在某些地方提到的证书 RSA/SHA256 中看到,不确定如何在此处启用 TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 ......感谢任何输入...... 不,这与您的证书无关,而是与您的服务器配置有关。不确定您使用什么服务器来托管此服务器或 SSL/TLS 设置在其中的可配置性如何,但这是您应该查看的地方。 使用 Kestral/.Net 核心作为服务器。它是一个自托管端点。 添加如果 ti 可以帮助任何人挖掘相同的东西,因为 Kestral 设置协议版本看起来是克服这个问题的方法,因为密码套件看起来不能在带有 .Net core 3.1 的 kestral 中配置.【参考方案2】:

添加如果它有助于任何人挖掘相同的东西,对于 Kestral 将协议版本设置为 http1 看起来是克服这个问题的方法,因为密码套件看起来在 kestral 中至少在 .Net core 3.1 中是不可配置的。

【讨论】:

以上是关于访问本地托管的 SPA 时,Google Chrome 中出现错误“ERR_HTTP2_INADEQUATE_TRANSPORT_SECURITY”的主要内容,如果未能解决你的问题,请参考以下文章

如何在本地将 Material Design Iconic Font 托管到 vue 应用中

下载 Google 字体以在本地运行

在 S3 + Cloudfront 上以相同的 URL 托管多个 SPA Web 应用程序

React SPA with Express Backend API - 将 JWT 存储在本地存储中并限制 API 仅访问 SPA 的 Web 服务器 IP

托管到IIS后无法启动浏览器访问被拒绝

Google CDN托管jQuery和本地回退