我的服务器出现问题,我们在 ubuntu 18.04 中作为 Vmware ESXI 6.5 的 VM 运行,并使用 pfSense 防火墙作为另一个 vm,我们有多个 tomcat 实例运行没有问题。
在过去的几天里,使用 java 的应用程序停止发送电子邮件并返回“无法将套接字转换为 TLS”。我试图在我的另一个 vmware 服务器中进行复制,该服务器托管在家里,具有相同的结构,但它有同样的问题。
有人告诉我这可能是来自 java 的 cacerts。尝试应用 update-ca-certificates 和 update-ca-certificates。在我的家庭服务器中,它可以正常工作,所有电子邮件都没有问题,但是当我在我的生产 vmware 服务器(由 IBM 裸机托管)中应用它时,它没有工作。
最不寻常的是,它发生在任何 smtp 服务器(gmail 和其他)上。我们使用所有带有 TLS 和端口 587 的电子邮件。
解决此类问题的任何想法或任何解决方法?
谢谢
问题出在 Java 的最新版本上。
我
openjdk 1.8.0_292
从 _291 开始安装了 TLS 1.0 和 1.1,直到今天 Gmail 默认使用的协议。因此,为了能够在不安装其他 Java 版本的情况下解决我的问题,我编辑了该文件
/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/java.security
并评论了那部分:
并在之后添加这部分:
如您所见,java 已明确禁用某些协议,返回
COULD NOT CONVERT SOCKET TO TLS
错误。希望这可以帮助其他可能发现该问题的人。PS:这根本不对,它只是对我有用,所以我们可以在寻找另一种选择的同时工作。在巴西,我们使用一些尚未升级到 v1.3 的 smtp 服务器。