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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline rakhmadeev  
#1 Оставлено : 30 мая 2017 г. 19:14:53(UTC)
rakhmadeev

Статус: Новичок

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

При запуске тестового класса с использованием библиотек КриптоПРО JCP получаю следующую ошибку:
java -cp . TestAPHttp
Testing - Send Http POST request
May 30, 2017 6:48:49 PM ru.CryptoPro.ssl.SSLContextImpl d
INFO: keyStore is :
May 30, 2017 6:48:49 PM ru.CryptoPro.ssl.SSLContextImpl d
INFO: keyStore type is :
May 30, 2017 6:48:49 PM ru.CryptoPro.ssl.SSLContextImpl d
INFO: keyStore provider is :
May 30, 2017 6:48:49 PM ru.CryptoPro.ssl.SSLContextImpl d
INFO: init key store
May 30, 2017 6:48:49 PM ru.CryptoPro.ssl.SSLContextImpl d
INFO: defaultStoreProvider =
May 30, 2017 6:48:49 PM ru.CryptoPro.ssl.SSLContextImpl d
INFO:
May 30, 2017 6:48:50 PM ru.CryptoPro.JCP.tools.Starter check
INFO: Loading JCP 2.0 39014
May 30, 2017 6:48:50 PM ru.CryptoPro.JCP.tools.Starter check
INFO: JCP loaded.
May 30, 2017 6:48:50 PM ru.CryptoPro.ssl.SSLContextImpl d
INFO: init key manager of type GostX509
May 30, 2017 6:48:50 PM ru.CryptoPro.ssl.r <init>
WARNING: %% No appropriate keys for handshake
PATH: /var/opt/cprocsp/keys/apiminov
May 30, 2017 6:48:50 PM ru.CryptoPro.ssl.SSLContextImpl d
INFO: trustStore is:
May 30, 2017 6:48:50 PM ru.CryptoPro.ssl.SSLContextImpl d
INFO: trustStore type is :
May 30, 2017 6:48:50 PM ru.CryptoPro.ssl.SSLContextImpl d
INFO: trustStore provider is :
May 30, 2017 6:48:50 PM ru.CryptoPro.ssl.SSLContextImpl d
INFO: init trust store
May 30, 2017 6:48:50 PM ru.CryptoPro.ssl.SSLContextImpl d
INFO: init trust manager of type GostX509
May 30, 2017 6:48:50 PM ru.CryptoPro.ssl.SSLContextImpl d
INFO: init context...
May 30, 2017 6:48:50 PM ru.CryptoPro.ssl.SSLContextImpl d
INFO: Context initiated.
Exception in thread "main" javax.net.ssl.SSLHandshakeException: Received fatal alert: HANDSHAKE_FAILURE
at ru.CryptoPro.ssl.C.a(Unknown Source)
at ru.CryptoPro.ssl.C.a(Unknown Source)
at ru.CryptoPro.ssl.am.b(Unknown Source)
at ru.CryptoPro.ssl.am.a(Unknown Source)
at ru.CryptoPro.ssl.am.i(Unknown Source)
at ru.CryptoPro.ssl.am.startHandshake(Unknown Source)
at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1282)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1257)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:250)
at TestAPHttp.sendPost(TestAPHttp.java:35)
at TestAPHttp.main(TestAPHttp.java:18)

Код у моего класса следующий:
import java.io.BufferedReader;
import java.io.OutputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import javax.net.ssl.HttpsURLConnection;

public class TestAPHttp {

private final String USER_AGENT = "Mozilla/5.0";

public static void main(String[] args) throws Exception {

TestAPHttp http = new TestAPHttp();


System.out.println("\nTesting - Send Http POST request");
http.sendPost();

}

private void sendPost() throws Exception {

String url = "https://<Имя сервера>/api/test/scorex/79807166717?model=HCFB_MTS_POS_201705&agreement=yes";
URL obj = new URL(url);
HttpsURLConnection con = (HttpsURLConnection) obj.openConnection();

//add reuqest header
con.setRequestMethod("POST");
con.setRequestProperty("X-Authorization", "ec0f947d9df548d402cf56a8c5af1fe03f78b9ac");
con.setRequestProperty("X-Customer-Id", "21");

// Send post request
con.setDoOutput(true);
OutputStream wr = con.getOutputStream();
String urlParameter="Test";
wr.write(urlParameter.getBytes("UTF-8"));
wr.flush();
wr.close();

int responseCode = con.getResponseCode();
System.out.println("\nSending 'POST' request to URL : " + url);
System.out.println("Post parameters : ");
System.out.println("Response Code : " + responseCode);

BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();

while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
//print result
System.out.println(response.toString());

}

}

В чем может быть причина?
Offline Евгений Афанасьев  
#2 Оставлено : 30 мая 2017 г. 19:29:57(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
В коде вы указываете параметры хранилища доверенных сертификатов, контейнера пользователя (если включена клиентская аутентификация)?
Offline rakhmadeev  
#3 Оставлено : 30 мая 2017 г. 19:32:22(UTC)
rakhmadeev

Статус: Новичок

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

А могу ли я как то понять включена ли клиентская атентификация?
Я не задавал в коде хранилищ сертификатов.
Кстати а где можно посмотреть хранилище доверенных сертификатов?
Offline Евгений Афанасьев  
#4 Оставлено : 30 мая 2017 г. 20:09:06(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Автор: rakhmadeev Перейти к цитате
А могу ли я как то понять включена ли клиентская атентификация?
Я не задавал в коде хранилищ сертификатов.
Кстати а где можно посмотреть хранилище доверенных сертификатов?

1. Обратиться к администраторам сайта или сначала настроить работу без аутентификации.
2. Хранилище вы должны создать. См. руководство разработчика и разработчика JTLS в папке Doc/ЖТЯИ-XXX-JCP дистрибутива.

Offline rakhmadeev  
#5 Оставлено : 31 мая 2017 г. 15:50:17(UTC)
rakhmadeev

Статус: Новичок

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

Добрый день.

Проверка клиентского сертификата выключена на сервере.
Сегодня создал хранилище сертификатов при помощи утилиты ControlPane.sh. Запустил мой тестовый класс с опциями указывающими на truststore:
java -Djavax.net.ssl.trustStore=.... -Djavax.net.ssl.trustStorePassword=... -cp . TestAPHttp
Ошибка не изменилась.
Offline Евгений Афанасьев  
#6 Оставлено : 1 июня 2017 г. 11:34:28(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Здравствуйте.
Настройте логирование и соберите лог, как тут описано - https://support.cryptopr...lirovnija-kriptopro-jtls
Offline rakhmadeev  
#7 Оставлено : 2 июня 2017 г. 10:03:28(UTC)
rakhmadeev

Статус: Новичок

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

Проблему удалось решить, оказывается на принимающей стороне стоял прокси сервер без ГОСТового шифрования, поэтому не получалось установить соединение.

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