[英]How to open port 80 (HTTP) and 433 (HTTPS) in Java spring boot?
[英]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.