keytool生成ssl访问证书并导入java证书库中。(java使用腾讯企业邮箱发送邮件失败,链接不上smtp.exmail.qq.com)

keytool生成ssl访问证书并导入java证书库中。(java使用腾讯企业邮箱发送邮件失败,链接不上smtp.exmail.qq.com)_第1张图片

 1、获取 smtp.exmail.qq.com 的证书:

打开终端或命令提示符,并运行以下命令获取 smtp.exmail.qq.com 的证书:

openssl s_client -showcerts -connect smtp.exmail.qq.com:465

在输出中,找到以 -----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

导入证书后重启服务即可。

你可能感兴趣的:(ssl,java)