连接失败;嵌套的例外是:javax.net.ssl.SSLHandshakeException:

问题描述:

我收到以下错误,当我尝试连接雅虎连接失败;嵌套的例外是:javax.net.ssl.SSLHandshakeException:

pop3s. plus.mail.pop.yahoo.com:995 

error while connecting to pop3 mail server javax.mail.MessagingException: Connect failed; 
nested exception is: 
    javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 

我已经尝试添加证书到JAVA_Home/jre/lib/security。此外,当我试图直接使用相同的代码使用Java/javac Cmd它的作品。但从tomcat它不起作用。

另外:我使用的代码在过去两年以来一直在同一台服务器上运行。最近我们已经从专用服务器迁移到基于云的服务器。 Backspace是我们部署代码的供应商。

在此先感谢! Vivek Agrawal

最可能的原因是系统无法找到有效的证书,因为在迁移过程中,与密钥库相关的内容未正确设置。

检查您的配置文件$ CATALINA_BASE/conf/server.xml并查看是否在连接器标记下设置了正确密钥库的路径。如果你在一个文件中使用JSSL看看这个

<-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 --> 
<Connector 
      port="8443" maxThreads="200" 
      scheme="https" secure="true" SSLEnabled="true" 
      keystoreFile="${user.home}/.keystore" keystorePass="changeit" 
      clientAuth="false" sslProtocol="TLS"/> 

你keystoreFile必须设置,以便正确的路径您的应用程序可以验证AMD在请求解析certificacion路径(keystorepass必须是正确的太, 确实)。

如果您有其他的配置(APR或东西)在文档看关于http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html

希望这有助于, 干杯!

+0

感谢您的快速回复。您提到的连接器标签用于外出连接或传入连接。 –

+0

这里我试图使用JAVA MAIL API连接到Yahoo pop 3服务器。连接器标签的变化会对我有所帮助。仅供参考,目前该连接器标签已被注释掉。如果在之前的安装和配置中连接器标签已被评论,然后将它留下评论,那么甚至在该标签被评论为 –

+0

之前它也工作得很好......也许你的keystore在另一个地方,查找catalina.sh启动文件并查看是否有任何指向有效密钥库的java命令参数。 –