连接失败;嵌套的例外是: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
希望这有助于, 干杯!
感谢您的快速回复。您提到的连接器标签用于外出连接或传入连接。 –
这里我试图使用JAVA MAIL API连接到Yahoo pop 3服务器。连接器标签的变化会对我有所帮助。仅供参考,目前该连接器标签已被注释掉。如果在之前的安装和配置中连接器标签已被评论,然后将它留下评论,那么甚至在该标签被评论为 –
之前它也工作得很好......也许你的keystore在另一个地方,查找catalina.sh启动文件并查看是否有任何指向有效密钥库的java命令参数。 –