javamail中的STARTTLS验证需要证书时的发信
对于javamail发送邮件,服务器需要tls验证时只要指定mail.able为true就可以了,
但遇到服务器需要使⽤CA证书时怎样操作,⽹上的资料太少了,今天遇到的问题
sun.security.validator.ValidatorException: PKIX path building failed:
sun.path.SunCertPathBuilderException: unable to find valid certification path to requested target
⽹上能到的资料说明
sun认证Q: When connecting to my mail server over SSL I get an exception like "unable to find valid certification path to requested target".
A: Your server is probably using a test certificate or self-signed certificate instead of a certificate signed by a commercial Certificate Authority. You'll need to install the server's certificate into your trust store. The InstallCert program will help.
运⾏ java :465
得到jssecacerts⽂件后复制到jdk1.6.0_14\jre\lib\security⽬录
-------------------
以上是服务器需要ssl证书验证时的处理办法,但如果你的服务器是tls(STARTTLS)验证需要证书时就不⾏了。
InstallCert⼯具不能从服务器上把证书拿下来,那么就需要⼿⼯把证书添加到你的security⽬录了。
⼀个最简单的办法,随便⽤个客户端进⾏连接,下载下来证书后导出为⽂件。
导⼊邮箱CA命令:keytool -import -alias cacerts -keystore cacerts -file (证书⽂件名) -trustcacerts
cacerts⽂件是本机jre原有的认证⽂件(默认⽬录地址:C:\Program Files\Java\jre6\lib\security\)
命令会提⽰你输⼊cacerts证书库密码,默认密码为changeit,
然后Y确认即可,认证已添加到keystore。
上述操作后就可以⽤javamail进⾏服务器为STARTTLS验证并且需要证书的发信了。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论