我有一个 Tomcat 5 网络应用程序,它试图通过 SSL 套接字通过端口 465 上的 smtp.gmail.com 发送邮件。我得到异常:
javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 465;
nested exception is:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: No trusted certificate found
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1706)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:525)
at javax.mail.Service.connect(Service.java:291)
at javax.mail.Service.connect(Service.java:172)
好的。我试图在我的 keystore 中导入我在网站上获得的证书 https://www.gmail.com .
keytool -import -trustcacerts -file c:\verising-c3_01.cer
但是 keytool 说这个证书已经存在了。 Tomcat 使用默认设置安装,我没有移动 keystore (我什至不知道它们在哪里)。 我的javaMail版本是1.4.3,我的jvm版本是1.4.2_12。
最佳答案
导入的证书进入信任库,而不是 keystore 。您根本不需要 keystore ,除非服务器需要客户端证书,而邮件服务器很少这样做。
关于java - 发送邮件时未找到受信任的证书,但该证书似乎在 keystore 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10324692/