jbx*_*jbx 4 java ssl openjdk ubuntu-20.04
我有一个连接到 IMAP 存储并检查消息的 Java 应用程序。它在 AWS 上的 Ubuntu 20.04.2 LTS 焦点上运行。它在 Java 11 (OpenJDK) 上运行。
一切正常,直到 2021 年 4 月 21 日,Java 版本自动更新到 OpenJDK 11.0.11。此时,重新启动应用程序后,我收到以下异常:
javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
at java.base/sun.security.ssl.HandshakeContext.<init>(HandshakeContext.java:170)
at java.base/sun.security.ssl.ClientHandshakeContext.<init>(ClientHandshakeContext.java:98)
at java.base/sun.security.ssl.TransportContext.kickstart(TransportContext.java:221)
at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:433)
at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:411)
at com.sun.mail.util.SocketFetcher.configureSSLSocket(SocketFetcher.java:549)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:354)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:237)
at com.sun.mail.iap.Protocol.<init>(Protocol.java:116)
at com.sun.mail.imap.protocol.IMAPProtocol.<init>(IMAPProtocol.java:115)
at com.sun.mail.imap.IMAPStore.newIMAPProtocol(IMAPStore.java:685)
at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:636)
... 24 more
Run Code Online (Sandbox Code Playgroud)
我刚刚在 2020-04-14 降级回 OpenJDK 11.0.7,一切恢复正常。
在版本 11.0.7 和 11.0.11 之间,java.security 策略或支持的密码是否发生了重大变化?
除了保留 11.0.7 版本之外,还有其他方法可以解决此问题吗?
OpenJDK 11.0.11(更新日志)解决了JDK-8202343问题,默认禁用对 TLS 版本 1.0 和 1.1 的支持:
TLS 1.0 和 1.1 是不再被认为安全的 TLS 协议版本,已被更安全和现代的版本(TLS 1.2 和 1.3)取代。
这些版本现在已默认禁用。
jdk.tls.disabledAlgorithms如果您遇到问题,您可以通过从配置文件的安全属性中删除“TLSv1”和/或“TLSv1.1”来重新启用这些版本(风险自负)java.security。
您的mail.imap.ssl.protocols属性设置(感谢 dave_thompson_085 提到这一点)和/或您尝试连接的 IMAP 服务器可能启用了 TLS 1.0 或 1.1,但没有启用任何较新的当前推荐版本。
| 归档时间: |
|
| 查看次数: |
6118 次 |
| 最近记录: |