作者:突然丶丶想你 | 来源:互联网 | 2023-09-14 13:32
TLS考虑因素与现有的安全HTTP1.1应用程序相比,HTTP2规范和浏览器实现带来了新的安全限制:TLS1.2,SNI和ALPN,都需要升级到HTT2协议安全的服务器证书-通常具
TLS考虑因素
与现有的安全HTTP / 1.1应用程序相比,HTTP / 2规范和浏览器实现带来了新的安全限制:
- TLS 1.2,SNI和ALPN,都需要升级到HTT / 2协议
- 安全的服务器证书 - 通常具有强签名算法和密钥2048+位密钥
- HTTP / 2规范中列出的所有TLS要求
JDK8本身不支持TLS 1.2,但它在JDK9中; 另外,替代TLS实现(包括本机绑定)很受欢迎,因为与JDK堆栈相比,它们可以提供性能提升。这部分解释了为什么容器提供各种部署选项,每个选项都有其优缺点。
容器配置
Apache Tomcat
从版本8.5开始,Tomcat支持使用JDK8(使用Tomcat Native)和JDK9(使用本机JSSE)的HTTP / 2。从Tomcat 9开始支持Servlet 4.0。
Eclipse Jetty
Jetty支持多种部署模式,提供不同的方式来支持TLS 1.2和ALPN:
- 通过使用引导类路径jar修补JDK8的ALPN实现;
- 通过使用Conscrypt的本机绑定
暗潮
使用Undertow 1.3,开发人员需要使用Jetty的ALPN代理来运行其ALPN支持的服务器。从Undertow 1.4开始,您可以使用单个选项启用HTTP / 2支持
Reactor Netty
从Spring Framework 5.1(Reactor Netty 0.8)开始,该服务器也支持HTTP / 2。JDK9 +部署将支持该协议,无需更改特定的基础结构。
对于JDK 8环境或最佳运行时性能,此服务器还支持具有本机库的HTTP / 2。要启用它,您的应用程序需要具有其他依赖项。Spring Boot管理io.netty:netty-tcnative-boringssl-static“超级jar” 的版本,包含所有平台的本机库。开发人员可以选择使用分类器仅导入所需的依赖关系。