Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Отсылка E-mail на Java / 4 сообщений из 4, страница 1 из 1
05.07.2012, 15:27:14
    #37867788
Леонов Юрий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отсылка E-mail на Java
Добрый день!
возникла проблема с самоподписанными сертификатами при отправке 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
05.07.2012, 15:34:55
    #37867806
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отсылка E-mail на Java
Ну, было ведь в той теме.
10239261

Только socket factory пропихнуть по другому
http://www.javaworld.com/javatips/jw-javatip115.html
...
Рейтинг: 0 / 0
05.07.2012, 17:54:00
    #37868129
Леонов Юрий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отсылка E-mail на Java
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
06.07.2012, 10:32:16
    #37868707
Kripke
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Отсылка E-mail на Java
Как-то так

Код: 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
Форумы / Java [игнор отключен] [закрыт для гостей] / Отсылка E-mail на Java / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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