Статус: Участник
Группы: Участники
Зарегистрирован: 30.07.2014(UTC) Сообщений: 16 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png)
|
Здравствуйте! Помогите разобраться! Прислали сертификат для двусторонней аутентификации. Каталог содержащий сертификат и закрытые ключи скопировал на флешку. Через КриптоПро CSP установил сертификат следующим способом. КриптоПро CSP -> Посмотреть сертификаты в контейнере -> Обзор -> Дисковод G - диск с флешкой с отображением длинного имени контейнера содержащего 16-тицеричные коды -> Далее -> Установить После этог присланный урл https://test.ru открылся в браузере. Теперь примено то же самое пытаюсь повторить с jcp-2.0.37538. Установил jcp и jtls c лицензиями, снял экспортные ограничения в jre, тест java -cp samples.jar ComLine.CheckConf показал все ок. Теперь через ControlPane устанавливаю присланный сертификат: Keys and sertificat stores -> FloppyStore -> выбираю единственное имя контейнера содержащего 16-тицеричные коды -> Copy -> выбираю HDImageStore -> задаю имя "store", пароль "123456". После этого контейнер "store" можно открыть и увидеть сертификат и ключ. Если посмотреть сертификат и посмотреть путь, то отобразится иерархия с корневым сертификатом. Далее пытаюсь открыть урл в коде: System.setProperty("javax.net.ssl.trustStoreType", "HDImageStore"); // Путь совпадаетс с ControlPane -> Hardware -> Path to HDImage store System.setProperty("javax.net.ssl.trustStore", "C:/Users/User/AppData/Local/Crypto Pro"); System.setProperty("javax.net.ssl.trustStoreAlias", "store"); System.setProperty("javax.net.ssl.trustStorePassword", "123456"); System.setProperty("javax.net.ssl.supportGVO", "true"); URL url = new URL("https://test.ru"); InputStream openStream = url.openStream(); openStream.close(); openStream вываливается с исключением: javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty Что делаю не так?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,002 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 714 раз в 674 постах
|
Здравствуйте. Не задан trusted store. trustStore - путь к файлу, а не папка. trustStoreAlias не нужен. |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 30.07.2014(UTC) Сообщений: 16 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png)
|
Ок. Создал хранилище сертификатов c:\store с паролем 123456. Скопировал туда сертификат и корневой сертификат. Построил дерево.
Новые параметры задал так:
System.setProperty("javax.net.ssl.supportGVO", "true");
System.setProperty("javax.net.ssl.keyStoreType", "HDImageStore"); System.setProperty("javax.net.ssl.keyStorePassword", "123456");
System.setProperty("javax.net.ssl.trustStoreType", "HDImageStore"); System.setProperty("javax.net.ssl.trustStore", "C:\store"); System.setProperty("javax.net.ssl.trustStorePassword", "123456");
Открытие урл вылетает с ошибкой: javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,002 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 714 раз в 674 постах
|
Попробуйте как-то так: Код:
private static void printContent(HttpsURLConnection conn){
if(conn != null) {
try {
BufferedReader br = new BufferedReader( new InputStreamReader(conn.getInputStream()) );
String input;
while ((input = br.readLine()) != null) {
System.out.println(input);
}
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) throws Exception {
System.setProperty("com.sun.security.enableCRLDP", "true");
System.setProperty("com.ibm.security.enableCRLDP", "true");
// https://tlsgost-2001auth.cryptopro.ru/index.html - с двухсторонней аутентификацией
// https://tlsgost-2001.cryptopro.ru/index.html - с односторонней аутентификацией
System.setProperty("javax.net.ssl.trustStoreType", "CertStore");
System.setProperty("javax.net.ssl.trustStore", "<path_to_trust_store>"); // Содержит корневой сертификат https://tlsgost-2001auth.cryptopro.ru/index.html (Тестовый УЦ)
System.setProperty("javax.net.ssl.trustStorePassword", "<trust_store_password>");
// При двухстороннней аутентификации (сертификат клиента выпущен в Тестовом УЦ)
System.setProperty("javax.net.ssl.keyStoreType", "HDImageStore");
System.setProperty("javax.net.ssl.keyStorePassword", "<key_password>");
URL url = new URL("https://tlsgost-2001auth.cryptopro.ru/index.html");
HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
conn.connect();
printContent(conn);
conn.disconnect();
}
Отредактировано пользователем 30 июля 2014 г. 21:03:57(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 30.07.2014(UTC) Сообщений: 16 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png)
|
Вылетатет с тем же исключением:
31.07.2014 9:53:59 ru.CryptoPro.ssl.SSLContextImpl d INFO: keyStore is : 31.07.2014 9:53:59 ru.CryptoPro.ssl.SSLContextImpl d INFO: keyStore type is : HDImageStore 31.07.2014 9:53:59 ru.CryptoPro.ssl.SSLContextImpl d INFO: keyStore provider is : 31.07.2014 9:53:59 ru.CryptoPro.ssl.SSLContextImpl d INFO: init key store 31.07.2014 9:53:59 ru.CryptoPro.ssl.SSLContextImpl d INFO: defaultStoreProvider = 31.07.2014 9:53:59 ru.CryptoPro.ssl.SSLContextImpl d INFO: 31.07.2014 9:53:59 ru.CryptoPro.JCP.tools.Starter check INFO: Loading JCP 2.0 37538 31.07.2014 9:53:59 ru.CryptoPro.JCP.tools.Starter check INFO: JCP loaded. 31.07.2014 9:53:59 ru.CryptoPro.ssl.SSLContextImpl d INFO: init key manager of type GostX509 31.07.2014 9:53:59 ru.CryptoPro.ssl.SSLContextImpl d INFO: trustStore is: C: osreestr 31.07.2014 9:53:59 ru.CryptoPro.ssl.SSLContextImpl d INFO: trustStore type is : CertStore 31.07.2014 9:53:59 ru.CryptoPro.ssl.SSLContextImpl d INFO: trustStore provider is : 31.07.2014 9:53:59 ru.CryptoPro.ssl.SSLContextImpl d INFO: init trust store 31.07.2014 9:53:59 ru.CryptoPro.ssl.SSLContextImpl d INFO: init trust manager of type GostX509 31.07.2014 9:53:59 ru.CryptoPro.ssl.SSLContextImpl d INFO: init context... 31.07.2014 9:53:59 ru.CryptoPro.ssl.SSLContextImpl d INFO: Context initiated. 31.07.2014 9:53:59 test.TestWS testService javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty at ru.CryptoPro.ssl.B.a(Unknown Source) at ru.CryptoPro.ssl.an.a(Unknown Source) at ru.CryptoPro.ssl.an.a(Unknown Source) at ru.CryptoPro.ssl.an.a(Unknown Source) at ru.CryptoPro.ssl.an.startHandshake(Unknown Source) at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:434) at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:166) at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1172) at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:234) at java.net.URL.openStream(URL.java:1010)
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 30.07.2014(UTC) Сообщений: 16 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png)
|
На JDK 6, 7 одинаковый результат. На 32-х, 64-х разрядной Windows тоже. Что не так?
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close