Форум КриптоПро
»
Средства криптографической защиты информации
»
КриптоПро JCP, JavaTLS
»
Не работает обращение по ГОСТ SSL Received fatal alert: HANDSHAKE_FAILURE
Статус: Новичок
Группы: Участники
Зарегистрирован: 30.05.2017(UTC) Сообщений: 4 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png)
|
При запуске тестового класса с использованием библиотек КриптоПРО 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());
}
}
В чем может быть причина?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,003 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 714 раз в 674 постах
|
В коде вы указываете параметры хранилища доверенных сертификатов, контейнера пользователя (если включена клиентская аутентификация)? |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 30.05.2017(UTC) Сообщений: 4 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png)
|
А могу ли я как то понять включена ли клиентская атентификация? Я не задавал в коде хранилищ сертификатов. Кстати а где можно посмотреть хранилище доверенных сертификатов?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,003 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 714 раз в 674 постах
|
Автор: rakhmadeev ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) А могу ли я как то понять включена ли клиентская атентификация? Я не задавал в коде хранилищ сертификатов. Кстати а где можно посмотреть хранилище доверенных сертификатов? 1. Обратиться к администраторам сайта или сначала настроить работу без аутентификации. 2. Хранилище вы должны создать. См. руководство разработчика и разработчика JTLS в папке Doc/ЖТЯИ-XXX-JCP дистрибутива. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 30.05.2017(UTC) Сообщений: 4 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png)
|
Добрый день.
Проверка клиентского сертификата выключена на сервере. Сегодня создал хранилище сертификатов при помощи утилиты ControlPane.sh. Запустил мой тестовый класс с опциями указывающими на truststore: java -Djavax.net.ssl.trustStore=.... -Djavax.net.ssl.trustStorePassword=... -cp . TestAPHttp Ошибка не изменилась.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,003 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 714 раз в 674 постах
|
|
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 30.05.2017(UTC) Сообщений: 4 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png)
|
Проблему удалось решить, оказывается на принимающей стороне стоял прокси сервер без ГОСТового шифрования, поэтому не получалось установить соединение.
Спасибо за оказанную помощь и предоставленную информацию было очень полезно!
|
|
|
|
Форум КриптоПро
»
Средства криптографической защиты информации
»
КриптоПро JCP, JavaTLS
»
Не работает обращение по ГОСТ SSL Received fatal alert: HANDSHAKE_FAILURE
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close