java mail urlname_如何忽略javamail中的服务器证书错误

当我使用imaps连接到我的imap服务器时,它很脆弱。

你能告诉我如何忽略javamail中的服务器证书错误

Exception in thread "main"

javax.mail.MessagingException:

sun.security.validator.ValidatorException:

PKIX path building failed:

sun.security.provider.certpath.SunCertPathBuilderException:

unable to find valid certification

path to requested target; nested

exception is:

javax.net.ssl.SSLHandshakeException:

sun.security.validator.ValidatorException:

PKIX path building failed:

sun.security.provider.certpath.SunCertPathBuilderException:

unable to find valid certification

path to requested target at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:665)

at javax.mail.Service.connect(Service.java:295)

at javax.mail.Service.connect(Service.java:176)

at App20110204.main(App20110204.java:31)

Caused by:

javax.net.ssl.SSLHandshakeException:

sun.security.validator.ValidatorException:

PKIX path building failed:

sun.security.provider.certpath.SunCertPathBuilderException:

unable to find valid certification

path to requested target at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Alerts.java:174)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1623)

at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:198)

at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Handshaker.java:192)

at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1074)

at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:128)

at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Handshaker.java:529)

at com.sun.net.ssl.internal.ssl.Handshaker.process_record(Handshaker.java:465)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:884)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1120)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1147)

at com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1131)

at com.sun.mail.util.SocketFetcher.configureSSLSocket(SocketFetcher.java:507)

at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:238)

at com.sun.mail.iap.Protocol.(Protocol.java:113)

at com.sun.mail.imap.protocol.IMAPProtocol.(IMAPProtocol.java:110)

at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:632)

... 3 more Caused by:

sun.security.validator.ValidatorException:

PKIX path building failed:

sun.security.provider.certpath.SunCertPathBuilderException:

unable to find valid certification

path to requested target at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:294)

at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:200)

at sun.security.validator.Validator.validate(Validator.java:218)

at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:126)

at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:209)

at com.sun.net.ssl.internal.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:249)

at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1053)

... 15 more Caused by:

sun.security.provider.certpath.SunCertPathBuilderException:

unable to find valid certification

path to requested target at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:174)

at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:238)

at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:289)

... 21 more

和我的源代码

Properties prop = new Properties();

prop.put("mail.imap.ssl.checkserveridentity", "false");

prop.put("mail.imap.ssl.trust", "*");

Session session = Session.getDefaultInstance(prop);

Store store = session.getStore("imaps");

store.connect("mail.xxx.com", "xxxx", "p@ssw0rd");

System.out.println(store.getFolder("INBOX").getMessageCount());

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值