Как отключить поддержку 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.

Я нашел эти свойства в отн. ="nofollow">форум

mail.smtp.ssl.trust="*"
mail.smtp.starttls.enable="true"
  • Как я могу передать им свойства, указанные выше, через структуру шва до 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, убедитесь, что ваше хранилище доверенных сертификатов на стороне клиента содержит якорь доверия (сертификат ЦС), который можно использовать для проверки сертификата вашего сервера. (Обратите внимание, что значение по умолчанию mail.smtp.ssl.checkserveridentity для false небезопасно, поэтому вам следует изменить его на true, а не использовать mail.smtp.ssl.trust="*".)

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