powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Отсылка E-mail на Java
4 сообщений из 4, страница 1 из 1
Отсылка E-mail на Java
    #37867788
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!
возникла проблема с самоподписанными сертификатами при отправке email на Java.

вылетает ошибка
Код: java
1.
2.
3.
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



кто-нибудь знает как отключить проверку сертификатов?
или как то решить данную проблему?

Заранее благодарен за оказанную помощь.
...
Рейтинг: 0 / 0
Отсылка E-mail на Java
    #37867806
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, было ведь в той теме.
10239261

Только socket factory пропихнуть по другому
http://www.javaworld.com/javatips/jw-javatip115.html
...
Рейтинг: 0 / 0
Отсылка E-mail на Java
    #37868129
Леонов Юрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

не совсем понял куда это хозяйство ставить
у меня есть функция на которой вылетает ошибка

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
private boolean sendMsg(OutboundMessage msg) {
        MimeMessage message = new MimeMessage(session);
        try {
            InternetAddress toAddress = new InternetAddress(msg.getRecipient());
            InternetAddress fromInternetAddress = new InternetAddress(senderName);
            
            message.setFrom(fromInternetAddress);
            message.addRecipient(Message.RecipientType.TO, toAddress);
            message.setContent(msg.getText(), "text/html; charset=UTF-8"); // "text/plain"
            message.setSubject(msg.getSubject(), "UTF-8");

            if (!transport.isConnected()) {
                transport.connect();
            }
            transport.sendMessage(message, message.getAllRecipients());

            msg.setGatewayId(getGatewayId());
            msg.setRefNo(null);
            msg.setDispatchDate(new Date());
            msg.setMessageStatus(MessageStatuses.SENT);
            msg.setFailureCause(FailureCauses.NO_ERROR);

            incOutboundMessageCount();
        } catch (MessagingException mex) {
            msg.setRefNo(null);
            msg.setDispatchDate(null);
            msg.setMessageStatus(MessageStatuses.FAILED);
            msg.setFailureCause(FailureCauses.UNKNOWN);
            msg.setErrorMessage(null);

            log.error(mex);
            return false;
        }
        return true;
    }



где использовать TrustManager?
...
Рейтинг: 0 / 0
Отсылка E-mail на Java
    #37868707
Kripke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как-то так

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public class DummyTrustManager implements X509TrustManager {
    public void checkClientTrusted(X509Certificate[] cert, String authType) {
        // everything is trusted
    }
    public void checkServerTrusted(X509Certificate[] cert, String authType) {
        // everything is trusted
    }
    public X509Certificate[] getAcceptedIssuers() {
        return new X509Certificate[0];
    }
}



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
package test;

import java.io.IOException;
import java.net.InetAddress;
import java.net.Socket;

import javax.net.SocketFactory;
import javax.net.ssl.*;

public class DummySSLSocketFactory extends SSLSocketFactory {
    private SSLSocketFactory factory;

    public DummySSLSocketFactory() {
        try {
            SSLContext sslcontext = SSLContext.getInstance("TLS");
            sslcontext.init(null, new TrustManager[] { new DummyTrustManager()}, null);
            factory = (SSLSocketFactory)sslcontext.getSocketFactory();
        } catch(Exception ex) {}
    }

    public static SocketFactory getDefault() {
        return new DummySSLSocketFactory();
    }

    public Socket createSocket() throws IOException {
        return factory.createSocket();
    }

    public Socket createSocket(Socket socket, String s, int i, boolean flag) throws IOException {
        return factory.createSocket(socket, s, i, flag);
    }

    public Socket createSocket(InetAddress inaddr, int i, InetAddress inaddr1, int j) throws IOException {
        return factory.createSocket(inaddr, i, inaddr1, j);
    }

    public Socket createSocket(InetAddress inaddr, int i) throws IOException {
        return factory.createSocket(inaddr, i);
    }

    public Socket createSocket(String s, int i, InetAddress inaddr, int j) throws IOException {
        return factory.createSocket(s, i, inaddr, j);
    }

    public Socket createSocket(String s, int i) throws IOException {
        return factory.createSocket(s, i);
    }

    public String[] getDefaultCipherSuites() {
        return factory.getDefaultCipherSuites();
    }

    public String[] getSupportedCipherSuites() {
        return factory.getSupportedCipherSuites();
    }
}



и в вашем коде добавляете

Код: java
1.
java.security.Security.setProperty("ssl.SocketFactory.provider", "test.DummySSLSocketFactory");
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Отсылка E-mail на Java
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]