java - 发送邮件时未找到受信任的证书,但该证书似乎在 keystore 中

标签 java ssl jakarta-mail keystore

我有一个 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/

相关文章:

java - 动态图形编程(动画)

java - 什么是 quartz 默认线程数

java - 如何在Spring Boot Rest模板中使用.pfx证书和密码调用安全的rest api?

java - 552 抱歉,您的信封发件人域必须存在 (#5.7.1)

java - 我可以下载 JavaMail (IMAP) 中日期之间收到的电子邮件吗?

android - 从另一个 Activity 刷新列表

Java 存储过程在 Oracle 数据库中不返回任何内容

java - 使用接口(interface)对工厂进行单元测试很困难

python - SSL 握手错误 : [Errno 1]

php - reCAPTCHA (Zend_Service_ReCaptcha) 抛出 "Unable to Connect to tcp://api-verify.recaptcha.net:80"