我想为 TLSv1.2 和 TLSv1.3 配置 JMX 通信。我添加了 java vm 参数Dcom.sun.management.jmxremote.ssl.enabled.protocols=TLSv1.2
并检查它是否适用于大于等于 TLSv1.2 的版本。不幸的是,它不工作。我openssl s_client connect
使用 -tls1_2 运行命令并获取证书链和握手。但是当我使用 -tls1_3 运行相同的命令时,我得到了以下内容基本上没有证书链和握手。
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 7 bytes and written 259 bytes
Verification: OK
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
Early data was not sent
Verify return code: 0 (ok)
这文档说可以提供用逗号分隔的多个版本,但是它不起作用。
如何为两个版本提供支持?为两个版本添加两次相同的参数是行不通的,因为它会优先考虑最右边的版本。
Java 版本
openjdk 11.0.16 2022-07-19
OpenJDK Runtime Environment (build 11.0.16+8-post-Ubuntu-0ubuntu120.04)
OpenJDK 64-Bit Server VM (build 11.0.16+8-post-Ubuntu-0ubuntu120.04, mixed mode)