2010-11-21 66 views
1

我收到以下異常試圖發送電子郵件(使用Seam)如何禁用javamail SSL支持?

Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find vali 
d certification path to requested target 
     at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:285) 
     at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:191) 
     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:1014) 
     ... 68 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:280) 
     ... 74 more 

我用一個簡單的JavaMail的應用程序,無需額外設置測試服務器,它工作得很好。

但是使用Seams郵件標籤發生異常。 - 有沒有辦法禁用SSL? 我真的不需要SSL。

我發現在forum

mail.smtp.ssl.trust="*" 
mail.smtp.starttls.enable="true" 
  • 這些屬性我怎麼能忽略它們的屬性通過上面縫向下框架對JavaMail?

回答

3

您遇到的錯誤意味着您的JavaMail客戶端不信任其中一個證書(可能是服務器的證書)。由於您似乎正在使用STARTTLS,因此您正在有效地使用SSL/TLS。

如果您根本不想使用SSL/TLS,您可以試試類似mail.smtp.starttls.enable="false"的東西,雖然有些SMTP服務器會強制您使用它(SSL/TLS連接或通過STARTTLS)以進一步處理。

或者,如果您改變主意並希望/需要使用SSL,請確保您的客戶端信任存儲庫包含可用於驗證服務器證書的信任錨(CA證書)。 (請注意,mail.smtp.ssl.checkserveridentity默認false是不安全的,所以你要改變,要true,而不是使用mail.smtp.ssl.trust="*"。)

+0

(+1)對不起,如果我沒有正確表達這個意思,我很抱歉爲了別的東西而抱歉。 – stacker 2010-11-23 22:25:51