【问题标题】:Connect to mail service with imaps protocol, Certificates does not conform to algorithm使用 imaps 协议连接邮件服务,证书不符合算法
【发布时间】:2017-01-23 15:04:32
【问题描述】:

我正在尝试使用 imaps 协议将电子邮件访问到邮件服务 (zimbra)。 我正在使用 javaMail jar 版本 1.4.7

Properties props = (Properties)System.getProperties().clone();
// SSL setting
props.put("mail.imaps.ssl.checkserveridentity", "false");
props.put("mail.imaps.ssl.trust", "*");
MailSSLSocketFactory socketFactory = new MailSSLSocketFactory();
socketFactory.setTrustAllHosts(true);
props.put("mail.imaps.ssl.socketFactory", socketFactory);
Store store = Session.getDefaultInstance(props).getStore("imaps");
store.connect(host, email, password); /* exception here */

打印异常:

 javax.mail.MessagingException: java.security.cert.CertificateException: Certificates does not conform to algorithm constraints;
  nested exception is:
    javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: Certificates does not conform to algorithm constraints
    at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:670)
    at javax.mail.Service.connect(Service.java:295)
    at javax.mail.Service.connect(Service.java:176)

首先,我从网页中获得了证书(.crt 文件),如下图所示。其次,我已经使用 keytool 命令导入了证书

keytool  -importcert -file company.net.crt -keystore company.net -alias "company.net" -storepass changeit

picture 1 picture 2

我在这里错过了什么?

【问题讨论】:

    标签: java ssl-certificate jakarta-mail imap zimbra


    【解决方案1】:

    将您的代码更改为:

    props.put("mail.imaps.ssl.checkserveridentity", "false");
    props.put("mail.imaps.ssl.trust", "*");
    Store store = Session.getInstance(props).getStore("imaps");
    store.connect(host, email, password); /* exception here */
    

    注意将密钥更改为use Session.getInstance

    希望您还按照Notes for use of SSL with JavaMail 中的说明设置信任库属性。

    如果这仍然不起作用,请发布JavaMail debug output。您可能还想启用上面注释中描述的一些 SSL 调试属性。

    哦,JavaMail 1.4.7 已经很老了。如果可能,您应该升级到最新版本 JavaMail 1.5.6

    【讨论】:

    • 工作!感谢您的回答,我缺少 VM 参数,在 JavaMail -Djavax.net.ssl.trustStore=$HOME/.keystore 的 SLL 注释中找到了它
    猜你喜欢
    • 2020-03-30
    • 2017-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多