Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline auglov  
#1 Оставлено : 20 января 2015 г. 15:08:21(UTC)
auglov

Статус: Активный участник

Группы: Участники
Зарегистрирован: 25.12.2014(UTC)
Сообщений: 76

Сказал(а) «Спасибо»: 3 раз
Вопрос, наверное, ламерский, но что-то ничего не нашел.

Установлен CryptoPro JCP. Работает нормально с https там, где есть шифрование по ГОСТ-у.

Теперь нужно подключиться к mail.ru, чтобы отправить почту. Делаю так:

Код:
        Properties props = new Properties();
        props.setProperty("mail.debug", "true");
        props.setProperty("javax.net.ssl.debug", "all");
        props.setProperty("mail.smtp.host", "smtp.mail.ru");
        props.setProperty("mail.smtp.port", "465");
        props.setProperty("mail.smtp.auth", "true");
        props.setProperty("mail.smtp.connectiontimeout", "60000");
        props.setProperty("mail.smtp.timeout", "60000");
        props.setProperty("mail.transport.protocol", "smtps");
        props.setProperty("mail.smtp.socketFactory.port", "465"); 
        props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
        props.setProperty("mail.smtp.socketFactory.fallback", "false");
        props.setProperty("mail.smtp.ssl.enable", "true");
        props.setProperty("mail.mime.charset", "UTF-8");
        props.setProperty("java.security.debug", "all");
        props.setProperty("logging.properties", "all");

        javax.mail.Session sess = javax.mail.Session.getInstance(props, new Authenticator()
        {
            @Override
            public PasswordAuthentication getPasswordAuthentication()
            {
                return new PasswordAuthentication("user", "pass");
            }
        });

        try
        {
            MimeMessage message = new MimeMessage(sess);
            message.setSubject("test");
            message.setText("test");
            message.setRecipients(Message.RecipientType.TO, "auglov@naumen.ru");
            message.setSender(new InternetAddress("naumen.customs@mail.ru"));
            Transport.send(message);
        }
        catch (Throwable e)
        {
            e.printStackTrace(System.err);
        }


Получаю вот такой лог:



Что не так и как можно выключить КриптоПро в этом случае и вернуть родные для Java криптопровайдеры? Раньше, как-будто, все работало.
Offline Евгений Афанасьев  
#2 Оставлено : 20 января 2015 г. 16:01:42(UTC)
Евгений Афанасьев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,927
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 691 раз в 652 постах
Здравствуйте.
JTLS поддерживал и поддерживает только ГОСТ алгоритмы и соответствующие сайферсюиты. Если нужно одновременно создавать подключения к хостам, использующим, например, ГОСТ и RSA, то попробуйте использовать что-то типа apache http client 4, чтобы самостоятельно создавать SSLContext (в случае ГОСТ) или использовать какой-то контекст по умолчанию (TLS провайдера от sun и ibm для RSA), либо как-то передать этот контекст в нужные методы. Если этот вариант не подходит, то поэкспериментируйте с параметрами в java.security, касающимися SSLSocketFactory, но задавая их программно, с помощью Security.setProperty(). Вообще, работа JCP и MimeMessage не проверялась.

Отредактировано пользователем 20 января 2015 г. 16:05:32(UTC)  | Причина: Не указана

RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.