Проблема с сертификатом отправителя SMTP

Я использую Mirth Connect 3.4.2.8129. Я пытаюсь заставить работать отправителя SMTP, но получаю следующее исключение:

SMTP Sender error
ERROR MESSAGE: Error sending email message
org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp10.phimail-dev.com:587
    at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1401)
    at org.apache.commons.mail.Email.send(Email.java:1428)
    at com.mirth.connect.connectors.smtp.SmtpDispatcher.send(SmtpDispatcher.java:248)
    at com.mirth.connect.donkey.server.channel.DestinationConnector.handleSend(DestinationConnector.java:822)
    at com.mirth.connect.donkey.server.channel.DestinationConnector.process(DestinationConnector.java:476)
    at com.mirth.connect.donkey.server.channel.DestinationChain.doCall(DestinationChain.java:121)
    at com.mirth.connect.donkey.server.channel.DestinationChain.call(DestinationChain.java:63)
    at com.mirth.connect.donkey.server.channel.Channel.process(Channel.java:1715)
    at com.mirth.connect.donkey.server.channel.Channel.dispatchRawMessage(Channel.java:1198)
    at com.mirth.connect.donkey.server.channel.SourceConnector.dispatchRawMessage(SourceConnector.java:192)
    at com.mirth.connect.server.controllers.DonkeyEngineController.dispatchRawMessage(DonkeyEngineController.java:1053)
    at com.mirth.connect.server.controllers.DonkeyMessageController.reprocessMessages(DonkeyMessageController.java:442)
    at com.mirth.connect.server.api.servlets.MessageServlet$3.run(MessageServlet.java:208)
    at java.lang.Thread.run(Unknown Source)
Caused by: javax.mail.MessagingException: Could not convert socket to TLS;
  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.smtp.SMTPTransport.startTLS(SMTPTransport.java:1907)
    at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:666)
    at javax.mail.Service.connect(Service.java:367)
    at javax.mail.Service.connect(Service.java:226)
    at javax.mail.Service.connect(Service.java:175)
    at javax.mail.Transport.send0(Transport.java:253)
    at javax.mail.Transport.send(Transport.java:124)
    at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1391)

Я установил сертификат, предоставленный в качестве места назначения, куда я отправляю, в C:\Program Files\Java\jre1.8.0_144\lib\security\cacerts. Я также создал простое Java-приложение, которое использует те же настройки и свойства и успешно отправляет сообщение.

Кажется, что Мирт использует другое хранилище доверия, но из того, что я читал, 3.1+ использует значение по умолчанию. В каталоге C:\Program Files\Mirth Connect\appdata нет файла truststore.jks.

Что еще я могу проверить?


person Jeff    schedule 01.08.2017    source источник


Ответы (1)


Для версии сообщества Mirth (без плагина ssl):

Попробуйте использовать хранилище доверия Java. Вы можете управлять сертификатами непосредственно в JAVA.

Путь \lib\security\cacerts (пример: C:\Program Files\Java\jre1.8.0_131\lib\security\cacerts)

К вашему сведению: хранилище ключей Mirth будет находиться в keystore.jks в разделе appdata (например: C:\Program Files\Mirth Connect 342\appdata)

person Arvind Balachandran    schedule 04.08.2017