具有Java 11,HTTPS和HTTP 2.0的Spring Boot 2

时间:2019-02-14 09:17:30

标签: java spring-boot tomcat https http2

我有一个Spring Boot 2(2.1.2)应用程序,并使用内置的Tomcat。我只想使用配置文件条目启用HTTP2:

server.http2.enabled=true

我们还切换到了OpenJDK11。我们使用“让我们加密”证书。

如果未配置端口,则一切运行正常,因此我们的应用程序在端口8080上启动。我们的应用程序与HTTP2和HTTPS配合良好。 如果我将端口更改为默认的https端口443,则该应用程序将启动并在端口443上进行侦听:

netstat -lnp | grep 3352
tcp6       0      0 xxx.xxx.xxx.xxx:443      :::*                    LISTEN      3352/java

但是,如果我尝试访问该站点,则会收到SSL错误(安全连接失败)。

在Java 1.8中,它可以在端口443上正常工作。(当然,在这种情况下,HTTP2无法正常工作。)

任何想法我该怎么办?

1 个答案:

答案 0 :(得分:0)

如果您使用的是 Java 11,则证书可能存在问题,需要使用带有 keytool 的 -keyalg 标志来生成证书,否则,密钥将使用旧的默认 DSA 进行加密,这在 TLS1 中不再允许。 3.使用 RSA 就可以了。

从 Java 11 开始,TLS1.3 是 JSSE 中 SSL 套接字的新默认加密方案,当它可以协商时。 TLS1.3 不再支持 DSA