来自具有早期 SSL 终止的浏览器的 HTTP2
Posted
技术标签:
【中文标题】来自具有早期 SSL 终止的浏览器的 HTTP2【英文标题】:HTTP2 from the browser with early SSL termination 【发布时间】:2018-04-20 11:57:46 【问题描述】:我想设置我的网页以向 Jetty API 服务器发出 HTTP2 请求。我读到浏览器只会使用“h2”协议,即带有 TLS 的 HTTP2。但是,我的设置有一个 kubernetes 入口执行 SSL 终止,并将明文请求代理回 Jetty 服务器。困境是我不认为我想使用 Jetty 协商“h2”连接,因为这需要该服务器上的 SSL 上下文。
我的问题是,此设置是否允许浏览器执行 HTTP2 请求?如果是这样,我需要在 Jetty 服务器上启用什么才能正确处理 HTTP2 请求?
【问题讨论】:
通过右击谷歌浏览器网络请求表的列标题,可以添加一个“协议”列,表示我的API请求已经在h2上进行了!我相信这是由 kubernetes 入口负载均衡器提供的。 【参考方案1】:您可以将 Jetty 配置为提供明文 HTTP/2(也称为 h2c
),这样您的设置将是:
browser -- h2 --> kubernetes tls termination -- h2c --> Jetty
要使用明文 HTTP/2 设置 Jetty,如果您将 Jetty 用作独立服务器,则只需启用 http2c
模块,请参阅http://www.eclipse.org/jetty/documentation/current/http2-enabling.html。
或者,如果您使用 Jetty 嵌入式,您可以查看 this example。
【讨论】:
以上是关于来自具有早期 SSL 终止的浏览器的 HTTP2的主要内容,如果未能解决你的问题,请参考以下文章