我无法在Ubuntu服务器上发送电子邮件[javax.net.ssl.SSLHandshakeException]

我突然无法在 Unbuntu 服务器上发送电子邮件。

从今天起就发生了。它仍然在本地工作。

javax.mail.MessagingException: Could not convert socket to TLS;
nested exception is:
javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
at com.sun.mail.smtp.SMTPTransport.startTLS(SMTPTransport.java:1907)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:666)

JAVA:

openjdk 版本“11.0.11” 2021-04-20
OpenJDK 运行时环境(构建 11.0.11+9-Ubuntu-0ubuntu2.20.04)
OpenJDK 64 位服务器 VM(构建 11.0.11+9-Ubuntu-0ubuntu2.20.04 、混合模式、共享)

握手后新会话票证到达:

SSL 会话:
协议:TLSv1.3
密码:TLS_AES_256_GCM_SHA384

回答

您的服务器似乎使用 TLSv1.1 或更早版本,并且您最近将 Java 升级到了 11.0.11 版。默认情况下,此版本的 Java 已禁用 TLSv1.0 和 TLSv1.1,例如参见Oracle Java 11.0.11 发行说明(尽管 AFAIK 这适用于所有 OpenJDK 派生版本):

安全库/javax.net.ssl
禁用 TLS 1.0 和 1.1

TLS 1.0 和 1.1 是不再被视为安全的 TLS 协议版本,已被更安全的现代版本(TLS 1.2 和 1.3)取代。

这些版本现已默认禁用。如果遇到问题,您可以自担风险,通过从配置文件的jdk.tls.disabledAlgorithms
安全属性中删除“TLSv1”和/或“TLSv1.1”来重新启用这些版本java.security

我建议您尝试TLSv1.1从文件中的jdk.tls.disabledAlgorithms属性中删除java.security是否可以解决您的问题,如果失败,请尝试删除TLSv1. 这表明您的邮件服务器需要更新或配置以支持更新和更安全的 TLS 版本。


以上是我无法在Ubuntu服务器上发送电子邮件[javax.net.ssl.SSLHandshakeException]的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>