簡體   English   中英

帶有 Java 11、HTTPS 和 HTTP 2.0 的 Spring Boot 2

[英]Spring Boot 2 with Java 11, HTTPS and HTTP 2.0

我有一個 Spring Boot 2 (2.1.2) 應用程序並使用內置的 Tomcat。 我只想使用配置文件條目啟用 HTTP2:

server.http2.enabled=true

我們還切換到 OpenJDK 11。我們使用 Let's Encrypt 證書。

如果未配置端口,一切正常,因此我們的應用程序在端口 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 不起作用。)

知道我該怎么做嗎?

如果您使用的是 Java 11,則證書可能存在問題,需要使用帶有 keytool 的 -keyalg 標志來生成證書,否則,密鑰將使用舊的默認 DSA 進行加密,這在 TLS1.3 中不再允許。 使用 RSA 它可以工作。

從 Java 11 開始,TLS1.3 是 JSSE 中 SSL 套接字的新默認加密方案,當它可以協商時。 TLS1.3 不再支持 DSA

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM