1、获取 smtp.exmail.qq.com 的证书:
打开终端或命令提示符,并运行以下命令获取 smtp.exmail.qq.com 的证书:
openssl s_client -showcerts -connect smtp.exmail.qq.com:465 </dev/null
在输出中,找到以 -----BEGIN CERTIFICATE----- 开头和以 -----END CERTIFICATE----- 结尾的部分,并将其复制到一个新的文件中(例如 mycert.crt)。
2、导入证书到 Java 的信任库:
打开终端或命令提示符,并导航到 Java 的安装目录中的 jre/lib/security 目录,里面有个文件是cacerts。默认情况下,Java 的安装目录位于 C:\Program Files\Java(Windows)或 /Library/Java(Mac)。
运行以下命令导入证书到信任库:
keytool -import -alias mycert -file mycert.crt -keystore cacerts
这将把证书导入到 Java 的默认信任库(cacerts)中。你需要提供证书的别名(alias)和证书文件的实际路径。默认的密码是 changeit。
3、验证证书导入:
运行以下命令验证证书是否已成功导入:
keytool -list -keystore cacerts
默认的密码是 changeit。
重启服务再试。
如果导入证书后还不行,看一下启动服务的时候有没有参数指定了信任库路径。
-Djavax.net.ssl.trustStore=/data/cacerts.jks -Djavax.net.ssl.keyStore=/data/keystore.jks
若有这两个参数,则需要把证书导入到这两个文件。
keytool -import -alias mycert -file mycert.crt -keystore /data/cacerts.jks
keytool -import -alias mycert -file mycert.crt -keystore /data/keystore.jks
导入证书后重启服务即可。