Как да деактивирам поддръжката на javamail SSL?

Получавам следното изключение, докато се опитвам да изпратя имейл (чрез Seam)

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.

Намерих тези свойства в форум

mail.smtp.ssl.trust="*"
mail.smtp.starttls.enable="true"
  • Как бих могъл да им предам свойствата по-горе през seam framework надолу към javamail?

person stacker    schedule 21.11.2010    source източник


Отговори (2)


Според Справочно ръководство на Seam и Seam форум трябва да можете да деактивирате TLS и SSL директно във вашата components.xml конфигурация:

<mail:mail-session debug="true" tls="false" ssl="false" ... />
person kraftan    schedule 24.11.2010

Грешката, която получавате, означава, че един от сертификатите (вероятно сертификатът на сървъра) не се доверява на вашия JavaMail клиент. Тъй като изглежда, че използвате STARTTLS, вие ефективно използвате SSL/TLS.

Може би можете да опитате нещо като mail.smtp.starttls.enable="false", ако изобщо не искате да използвате SSL/TLS, въпреки че някои SMTP сървъри ще ви принудят да го използвате (или SSL/TLS при връзка, или чрез STARTTLS), за да продължите по-нататък.

Като алтернатива, ако промените решението си и искате/трябва да използвате SSL, уверете се, че вашето хранилище за доверие от страна на клиента съдържа котва за доверие (CA сертификат), който може да се използва за проверка на сертификата на вашия сървър. (Имайте предвид, че mail.smtp.ssl.checkserveridentity по подразбиране false е несигурно, така че бихте искали да промените това на true, а не да използвате mail.smtp.ssl.trust="*".)

person Bruno    schedule 21.11.2010
comment
(+1) съжалявам, че имах за цел нещо друго, съжалявам, ако не съм успял да изразя това правилно. - person stacker; 24.11.2010