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

Уведомление

Icon
Error

3 Страницы<123
Опции
К последнему сообщению К первому непрочитанному
Offline Евгений Афанасьев  
#21 Оставлено : 30 мая 2019 г. 12:02:22(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
К сожалению, вижу "Эта конференция требует регистрации перед тем как вы сможете увидеть скрытые сообщения.". Попробуйте, пожалуйста, снова или иначе опубликовать пример.
Offline ThinkingAnna  
#22 Оставлено : 30 мая 2019 г. 12:11:36(UTC)
ThinkingAnna

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

Группы: Участники
Зарегистрирован: 19.05.2015(UTC)
Сообщений: 41
Женщина
Российская Федерация

Сказала «Спасибо»: 4 раз
перепутала тэгиd'oh!

вот на таком примере, используя JCSP, удается приконнектиться без каких-то либо ключей

Код:
SSLContext sslContext = SSLContext.getInstance("GostTLS");
KeyStore trustedKeyStore = KeyStore.getInstance("CertStore", JCSP.PROVIDER_NAME);
trustedKeyStore.load(new FileInputStream(tsAlias), tsPassword.toCharArray());
TrustManagerFactory tmf = TrustManagerFactory.getInstance("GostX509");
tmf.init(trustedKeyStore);
sslContext.init(null, tmf.getTrustManagers(), SecureRandom.getInstance("CPRandom", JCSP.PROVIDER_NAME));

URL objURL = new URL("https://zoe-api.fincert.cbr.ru/api/v1/account/login");

HttpsURLConnection con = (HttpsURLConnection) objURL.openConnection();

con.setSSLSocketFactory(sslContext.getSocketFactory());
con.setRequestProperty("Content-Type", "application/json");
con.setDoInput(true);
con.setDoOutput(true);
con.setRequestMethod("POST");
Offline Евгений Афанасьев  
#23 Оставлено : 30 мая 2019 г. 13:31:50(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Провайдеры JCP и Java CSP тут не причем, они лишь выполняют основные криптографические функции. Сообщения принимает cpSSL.
Мне удалось избежать получения запроса клиентского сертификата, только когда я отправил имя сервера zoe-api.fincert.cbr.ru в расширении SNI внутри ClientHello, иначе я всегда получал серверный сертификат tls-fc02n.fincert.cbr.ru и требование сертификата.
Но сделать отправку SNI с помощью jcp 2.0, пожалуй, не выйдет, так как он использует SSLParameters (позволяющий передать SNI с именем хоста) из jdk 1.7 (а этот класс появился только в java 8), к тому же из HttpsURLConnection вызывается конструктор SSLSocket по умолчанию и hostname для SNI оказывается пустым.
По идее, задать расширение можно в jcp 2.0-A для java 10 и выше, или попробовать другой http-клиент (ok http, apache).
В вашем случае сложно сказать, как получается, что SNI то отправляется, то нет.
На счет использования Java CSP: если он у вас выставлен провайдером по умолчанию в панели управления JCP ("Алгоритмы"), то да - в приведенном коде (если он весь) Java CSP будет использоваться, иначе нет.

P.S. Попробуйте другой клиент - ok http, apache.

Отредактировано пользователем 30 мая 2019 г. 13:38:42(UTC)  | Причина: Не указана

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