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

Уведомление

Icon
Error

2 Страницы12>
Опции
К последнему сообщению К первому непрочитанному
Offline Aleksandr60311  
#1 Оставлено : 24 августа 2020 г. 12:58:41(UTC)
Aleksandr60311

Статус: Участник

Группы: Участники
Зарегистрирован: 15.08.2020(UTC)
Сообщений: 10

Сказал(а) «Спасибо»: 1 раз
Здравствуйте, уважаемые участники форума!

Прошу помощи, так как в этом всём только начинаю разбираться.

Поставлена задача:
требуется написать на Java утилиту, которая будет коннектится к url по https c использованием сертификата.

Имеется:
сертификат *.cer, который установлен в Личное средствами Крипто Про
ключевой контейнер в виде папки с названием xxxxxxxx.000 в которой 6 файлов с расширением *.key. Эта папка на флешке

На текущий момент не могу понять как использовать этот ключевой контейнер средствами Java для TLS HandShake
В Internet Explorer url открывается.
Может быть кто-то решал подобную задачу?
Буду рад любой помощи!!!
Offline two_oceans  
#2 Оставлено : 25 августа 2020 г. 5:09:19(UTC)
two_oceans

Статус: Эксперт

Группы: Участники
Зарегистрирован: 05.03.2015(UTC)
Сообщений: 1,602
Российская Федерация
Откуда: Иркутская область

Сказал(а) «Спасибо»: 110 раз
Поблагодарили: 393 раз в 366 постах
Добрый день.
Полагаю, пример должен найтись в комплекте поставки JCP/JCSP. Точный путь есть в соседних темах.

С точки зрения поддержки утилиты (если планируется потом менять алгоритмы гост и т.д.) на мой взгляд выгоднее поставить на компьютере с утилитой stunnel-msspi чем включать в саму утилиту поддержку гост TLS. Идея такая что утилита коннектится на некий порт (на котором висит stunnel-msspi) на localhost по http, а stunnel-msspi далее коннектится по https с поддержкой гост к целевому адресу.
Online Санчир Момолдаев  
#3 Оставлено : 25 августа 2020 г. 13:08:09(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 88 раз
Поблагодарили: 223 раз в 211 постах
Добрый день!
JCPdistr\samples-sources.jar\JTLS_samples\*.java
Техническую поддержку оказываем тут
Наша база знаний
Offline Aleksandr60311  
#4 Оставлено : 25 августа 2020 г. 14:44:22(UTC)
Aleksandr60311

Статус: Участник

Группы: Участники
Зарегистрирован: 15.08.2020(UTC)
Сообщений: 10

Сказал(а) «Спасибо»: 1 раз
Спасибо большое! Посмотрю
Offline Aleksandr60311  
#5 Оставлено : 25 августа 2020 г. 16:28:47(UTC)
Aleksandr60311

Статус: Участник

Группы: Участники
Зарегистрирован: 15.08.2020(UTC)
Сообщений: 10

Сказал(а) «Спасибо»: 1 раз
Открыл пример TestHttpsConnection.

авг 25, 2020 4:57:34 PM ru.CryptoPro.ssl.SSLContextImpl$DefaultSSLContext l
INFO: keyStore is :
авг 25, 2020 4:57:34 PM ru.CryptoPro.ssl.SSLContextImpl$DefaultSSLContext l
INFO: keyStore type is : HDImageStore
авг 25, 2020 4:57:34 PM ru.CryptoPro.ssl.SSLContextImpl$DefaultSSLContext l
INFO: keyStore provider is :
авг 25, 2020 4:57:34 PM ru.CryptoPro.ssl.SSLContextImpl$DefaultSSLContext l
INFO: init keystore
авг 25, 2020 4:57:35 PM ru.CryptoPro.JCP.tools.Starter check
INFO: Loading JCP 2.0.40424
авг 25, 2020 4:57:35 PM ru.CryptoPro.JCP.tools.Starter check
INFO: JCP loaded.
авг 25, 2020 4:57:35 PM ru.CryptoPro.ssl.SSLContextImpl$DefaultSSLContext l
INFO: init keymanager of type GostX509
авг 25, 2020 4:57:35 PM ru.CryptoPro.ssl.cl_38 <init>
INFO: %% adding as private keys %%
авг 25, 2020 4:57:36 PM ru.CryptoPro.ssl.TrustManagerFactoryImpl a
INFO: trustStore is : No File Available, using empty keystore.
авг 25, 2020 4:57:36 PM ru.CryptoPro.ssl.TrustManagerFactoryImpl a
INFO: trustStore type is : HDImageStore
авг 25, 2020 4:57:36 PM ru.CryptoPro.ssl.TrustManagerFactoryImpl a
INFO: trustStore provider is :
авг 25, 2020 4:57:36 PM ru.CryptoPro.ssl.TrustManagerFactoryImpl a
INFO: init truststore
авг 25, 2020 4:57:36 PM ru.CryptoPro.ssl.SSLContextImpl engineInit
INFO: SSLContextImpl init.
авг 25, 2020 4:57:36 PM ru.CryptoPro.ssl.SSLContextImpl engineInit
INFO: trigger seeding of SecureRandom
авг 25, 2020 4:57:37 PM ru.CryptoPro.ssl.SSLContextImpl engineInit
INFO: done seeding SecureRandom
авг 25, 2020 4:57:37 PM ru.CryptoPro.ssl.SSLContextImpl engineInit
INFO: SSLContextImpl initialized.
авг 25, 2020 4:57:37 PM ru.CryptoPro.ssl.SSLContextImpl$DefaultSSLContext <init>
INFO: DefaultSSLContext initialized.
авг 25, 2020 4:57:38 PM ru.CryptoPro.ssl.SSLSocketImpl a
WARNING: main, handling exception: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
Exception in thread "main" javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
at ru.CryptoPro.ssl.cl_2.a(Unknown Source)
at ru.CryptoPro.ssl.SSLSocketImpl.a(Unknown Source)
at ru.CryptoPro.ssl.SSLSocketImpl.a(Unknown Source)
at ru.CryptoPro.ssl.SSLSocketImpl.a(Unknown Source)
at ru.CryptoPro.ssl.SSLSocketImpl.b(Unknown Source)
at ru.CryptoPro.ssl.SSLSocketImpl.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.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:162)
at testhttpsconnection.TestHttpsConnection.main(TestHttpsConnection.java:297)
Caused by: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
at ru.CryptoPro.ssl.pc_4.cl_2.<init>(Unknown Source)
at ru.CryptoPro.ssl.pc_4.cl_4.a(Unknown Source)
at ru.CryptoPro.ssl.cl_121.a(Unknown Source)
at ru.CryptoPro.ssl.cl_121.a(Unknown Source)
at ru.CryptoPro.ssl.cl_121.a(Unknown Source)
at ru.CryptoPro.ssl.cl_121.checkServerTrusted(Unknown Source)
at ru.CryptoPro.ssl.cl_15.a(Unknown Source)
at ru.CryptoPro.ssl.cl_15.a(Unknown Source)
at ru.CryptoPro.ssl.cl_58.w(Unknown Source)
at ru.CryptoPro.ssl.cl_58.a(Unknown Source)
at ru.CryptoPro.ssl.SSLSocketImpl.a(Unknown Source)
at ru.CryptoPro.ssl.SSLSocketImpl.n(Unknown Source)
... 6 more
Caused by: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
at java.security.cert.PKIXParameters.setTrustAnchors(PKIXParameters.java:200)
at java.security.cert.PKIXParameters.<init>(PKIXParameters.java:120)
at java.security.cert.PKIXBuilderParameters.<init>(PKIXBuilderParameters.java:104)
... 18 more

В коде есть строка

System.setProperty("javax.net.ssl.trustStore", "C:\\uc_cryptopro.store");

Не очень понимаю как правильно сделать файлu c_cryptopro.store. Что туда должно входить? подскажите пожалуйста

Отредактировано пользователем 25 августа 2020 г. 16:59:05(UTC)  | Причина: Не указана

Online Санчир Момолдаев  
#6 Оставлено : 25 августа 2020 г. 17:02:42(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 88 раз
Поблагодарили: 223 раз в 211 постах
Можно создать через панель JCP
Там должны быть сертификаты цепочки веб-сервера куда вы подключаетесь
Техническую поддержку оказываем тут
Наша база знаний
Offline Aleksandr60311  
#7 Оставлено : 25 августа 2020 г. 17:59:55(UTC)
Aleksandr60311

Статус: Участник

Группы: Участники
Зарегистрирован: 15.08.2020(UTC)
Сообщений: 10

Сказал(а) «Спасибо»: 1 раз
Исключение

Exception in thread "main" javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty

Ведь по этой причине, что не создано хранилище *.store?
Online Санчир Момолдаев  
#8 Оставлено : 25 августа 2020 г. 18:02:19(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 88 раз
Поблагодарили: 223 раз в 211 постах
Верно. Создайте через панель jcp
Техническую поддержку оказываем тут
Наша база знаний
Offline Aleksandr60311  
#9 Оставлено : 25 августа 2020 г. 18:25:29(UTC)
Aleksandr60311

Статус: Участник

Группы: Участники
Зарегистрирован: 15.08.2020(UTC)
Сообщений: 10

Сказал(а) «Спасибо»: 1 раз
Создал хранилище, куда положил сертификат сервера куда хочу подключиться и сертификат удостоверяющего центра

теперь такой stacktrace

авг 25, 2020 6:22:40 PM ru.CryptoPro.ssl.SSLContextImpl$DefaultSSLContext l
INFO: keyStore is :
авг 25, 2020 6:22:40 PM ru.CryptoPro.ssl.SSLContextImpl$DefaultSSLContext l
INFO: keyStore type is : HDImageStore
авг 25, 2020 6:22:40 PM ru.CryptoPro.ssl.SSLContextImpl$DefaultSSLContext l
INFO: keyStore provider is :
авг 25, 2020 6:22:40 PM ru.CryptoPro.ssl.SSLContextImpl$DefaultSSLContext l
INFO: init keystore
авг 25, 2020 6:22:41 PM ru.CryptoPro.JCP.tools.Starter check
INFO: Loading JCP 2.0.40424
авг 25, 2020 6:22:41 PM ru.CryptoPro.JCP.tools.Starter check
INFO: JCP loaded.
авг 25, 2020 6:22:41 PM ru.CryptoPro.ssl.SSLContextImpl$DefaultSSLContext l
INFO: init keymanager of type GostX509
авг 25, 2020 6:22:41 PM ru.CryptoPro.ssl.cl_38 <init>
INFO: %% adding as private keys %%
авг 25, 2020 6:22:42 PM ru.CryptoPro.ssl.TrustManagerFactoryImpl a
INFO: trustStore is : E:\VVTB.store
авг 25, 2020 6:22:42 PM ru.CryptoPro.ssl.TrustManagerFactoryImpl a
INFO: trustStore type is : HDImageStore
авг 25, 2020 6:22:42 PM ru.CryptoPro.ssl.TrustManagerFactoryImpl a
INFO: trustStore provider is :
авг 25, 2020 6:22:42 PM ru.CryptoPro.ssl.TrustManagerFactoryImpl a
INFO: init truststore
авг 25, 2020 6:22:42 PM ru.CryptoPro.ssl.SSLContextImpl engineInit
INFO: SSLContextImpl init.
авг 25, 2020 6:22:42 PM ru.CryptoPro.ssl.SSLContextImpl engineInit
INFO: trigger seeding of SecureRandom
авг 25, 2020 6:22:43 PM ru.CryptoPro.ssl.SSLContextImpl engineInit
INFO: done seeding SecureRandom
авг 25, 2020 6:22:43 PM ru.CryptoPro.ssl.SSLContextImpl engineInit
INFO: SSLContextImpl initialized.
авг 25, 2020 6:22:43 PM ru.CryptoPro.ssl.SSLContextImpl$DefaultSSLContext <init>
INFO: DefaultSSLContext initialized.
авг 25, 2020 6:22:44 PM ru.CryptoPro.ssl.SSLSocketImpl a
WARNING: main, handling exception: javax.net.ssl.SSLHandshakeException: ru.CryptoPro.ssl.pc_4.cl_5: PKIX path validation failed: java.security.cert.CertPathValidatorException: Could not determine revocation status
Exception in thread "main" javax.net.ssl.SSLHandshakeException: ru.CryptoPro.ssl.pc_4.cl_5: PKIX path validation failed: java.security.cert.CertPathValidatorException: Could not determine revocation status
at ru.CryptoPro.ssl.cl_2.a(Unknown Source)
at ru.CryptoPro.ssl.SSLSocketImpl.a(Unknown Source)
at ru.CryptoPro.ssl.cl_58.a(Unknown Source)
at ru.CryptoPro.ssl.cl_58.a(Unknown Source)
at ru.CryptoPro.ssl.cl_15.a(Unknown Source)
at ru.CryptoPro.ssl.cl_15.a(Unknown Source)
at ru.CryptoPro.ssl.cl_58.w(Unknown Source)
at ru.CryptoPro.ssl.cl_58.a(Unknown Source)
at ru.CryptoPro.ssl.SSLSocketImpl.a(Unknown Source)
at ru.CryptoPro.ssl.SSLSocketImpl.n(Unknown Source)
at ru.CryptoPro.ssl.SSLSocketImpl.b(Unknown Source)
at ru.CryptoPro.ssl.SSLSocketImpl.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.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:162)
at testhttpsconnection.TestHttpsConnection.main(TestHttpsConnection.java:329)
Caused by: ru.CryptoPro.ssl.pc_4.cl_5: PKIX path validation failed: java.security.cert.CertPathValidatorException: Could not determine revocation status
at ru.CryptoPro.ssl.pc_4.cl_2.a(Unknown Source)
at ru.CryptoPro.ssl.pc_4.cl_2.a(Unknown Source)
at ru.CryptoPro.ssl.pc_4.cl_4.b(Unknown Source)
at ru.CryptoPro.ssl.cl_121.a(Unknown Source)
at ru.CryptoPro.ssl.cl_121.a(Unknown Source)
at ru.CryptoPro.ssl.cl_121.checkServerTrusted(Unknown Source)
... 12 more
Caused by: java.security.cert.CertPathValidatorException: Could not determine revocation status
at sun.security.provider.certpath.PKIXMasterCertPathValidator.validate(PKIXMasterCertPathValidator.java:135)
at sun.security.provider.certpath.PKIXCertPathValidator.validate(PKIXCertPathValidator.java:233)
at sun.security.provider.certpath.PKIXCertPathValidator.validate(PKIXCertPathValidator.java:141)
at sun.security.provider.certpath.PKIXCertPathValidator.engineValidate(PKIXCertPathValidator.java:80)
at java.security.cert.CertPathValidator.validate(CertPathValidator.java:292)
at ru.CryptoPro.reprov.CPCertPathValidator.engineValidate(Unknown Source)
at java.security.cert.CertPathValidator.validate(CertPathValidator.java:292)
... 18 more
Caused by: java.security.cert.CertPathValidatorException: Could not determine revocation status
at ru.CryptoPro.reprov.certpath.CrlRevocationChecker.a(Unknown Source)
at ru.CryptoPro.reprov.certpath.CrlRevocationChecker.a(Unknown Source)
at ru.CryptoPro.reprov.certpath.CrlRevocationChecker.a(Unknown Source)
at ru.CryptoPro.reprov.certpath.CrlRevocationChecker.a(Unknown Source)
at ru.CryptoPro.reprov.certpath.CrlRevocationChecker.a(Unknown Source)
at ru.CryptoPro.reprov.certpath.CrlRevocationChecker.a(Unknown Source)
at ru.CryptoPro.reprov.certpath.CrlRevocationChecker.check(Unknown Source)
at sun.security.provider.certpath.PKIXMasterCertPathValidator.validate(PKIXMasterCertPathValidator.java:125)
... 24 more
Online Санчир Момолдаев  
#10 Оставлено : 26 августа 2020 г. 8:25:08(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 88 раз
Поблагодарили: 223 раз в 211 постах
в хранилище должна быть вся цепочка сертификатов для веб-сертификата сервера (головной и промежуточный. сам сертификат веб-сервера излишен)
приложите адрес куда подключаетесь
приложите ваше хранилище (которое вы создали) и пароль от него
Техническую поддержку оказываем тут
Наша база знаний
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
2 Страницы12>
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.