Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,006  Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
К сожалению, вижу "Эта конференция требует регистрации перед тем как вы сможете увидеть скрытые сообщения.". Попробуйте, пожалуйста, снова или иначе опубликовать пример. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 19.05.2015(UTC) Сообщений: 42   Сказала «Спасибо»: 4 раз
|
перепутала тэги вот на таком примере, используя 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");
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,006  Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 715 раз в 675 постах
|
Провайдеры 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)
| Причина: Не указана |
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close