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

Уведомление

Icon
Error

2 Страницы<12
Опции
К последнему сообщению К первому непрочитанному
Offline squadgazzz  
#11 Оставлено : 20 ноября 2020 г. 11:59:08(UTC)
squadgazzz

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

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

Сказал(а) «Спасибо»: 5 раз
Решил залогировать чтение из хранилищ.
Код:
HDImageKeyStore.getKey("keyoneninea", "123456".toCharArray) // возвращает null
JKSKeyStore.getKey("keyoneninea", "123456".toCharArray) // возвращает нужный ключ

В это же время, если посмотреть внутрь HDImageStore через keytool, то там есть нужный алиас и список отличается о того, который возвращает JKSKeyStore.aliases()
Код:
keyoneninea, 19 Nov 2020, PrivateKeyEntry,
Certificate fingerprint (SHA-256): EA:B4:4F


Так же в логах:

Отредактировано пользователем 20 ноября 2020 г. 12:44:23(UTC)  | Причина: Не указана

Offline squadgazzz  
#12 Оставлено : 20 ноября 2020 г. 12:38:54(UTC)
squadgazzz

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

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

Сказал(а) «Спасибо»: 5 раз
Автор: Евгений Афанасьев Перейти к цитате
А контейнер сделали для клиента/сервера?

Как это проверить? не нашел в документации

Offline Евгений Афанасьев  
#13 Оставлено : 20 ноября 2020 г. 14:20:27(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 688 раз в 649 постах
Автор: squadgazzz Перейти к цитате
Это хранилище должно быть создано тоже с провайдером JCSP и ГОСТ алгоритмом? Если да, то как создать ещё одно хранилище в системе?

Не обязательно провайдером JCP или JCSP. Это может быть JKS, но только с корневым сертификатом цепочки сертификатов другой стороны для ее проверки в ходе соединения.

Автор: squadgazzz Перейти к цитате
в JKS хранилище лежали и ключи и сертификаты.

В нашем случае требуется только корневой сертификат другой стороны.

Автор: squadgazzz Перейти к цитате
keytool -genkeypair

Это генерация ключевой пары. Например, для CertStore не подходит.

Автор: squadgazzz Перейти к цитате
Оба приложения запускаются в докере

Автор: squadgazzz Перейти к цитате
обновляется путь до HDImageStore

Проверьте права запускаемого приложения к ключевым контейнерам и папке с ними (чтение/запись).
Рекомендую сначала отладить на своей машине, а затем уже запускать в докере.

%% No alias is match - сообщение, если не найден ни один подходящий ключевой контейнер на этапе инициализации. Это происходит, если:
А) в папке пользователя, под которым запущено приложение и которое обращается к ключам, нет ключевых контейнеров;
Б) ключевые контейнеры есть и пользователь правильный, но нет прав для доступа к ключевым контейнерам;
В) ключевой контейнер и права есть, но не подходит пароль к ключу;
Г) пароль подошел, но нет сертификата в ключевом контейнере или сертификат просрочен;
Д) иное (например, в java.security или программно прописан bouncycastle или иной провайдер с ГОСТ поддержкой, который перехватывает работу с открытыми ключами и влияет на внутренние проверки).

Автор: squadgazzz Перейти к цитате
Как это проверить?

Посмотрите в Составе сертификата использование ключа - есть ли там "клиентская аутентификация" (если клиент) и "серверная аутентификация" (если сервер).
Также рекомендую обратиться к руководству разработчика - JCP/JCSP и JTLS, можно узнать на счет хранилищ, на счет использования ключа тоже должно быть.

Отредактировано пользователем 20 ноября 2020 г. 14:21:09(UTC)  | Причина: Не указана

Offline squadgazzz  
#14 Оставлено : 24 ноября 2020 г. 16:13:53(UTC)
squadgazzz

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

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

Сказал(а) «Спасибо»: 5 раз
С генерацией сертификатов вроде бы разобрались в этой теме https://www.cryptopro.ru...spx?g=posts&m=120845
Пока не понятно, почему keytool не сработал, но сейчас это не так важно.

Создал клиентско-серверный сертификат. Оба приложения смотрят на один и тот же HDImage. Теперь оба приложения находят подходящий для хэндшейка сертификат.
Ошибка следующая:
Код:
ru.CryptoPro.ssl.SSLLogger - nio-worker-group-4-1, fatal error: 46: General SSLEngine problem
ru.CryptoPro.ssl.pc_4.cl_5: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
        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_118.a(Unknown Source)
        at ru.CryptoPro.ssl.cl_118.a(Unknown Source)
        at ru.CryptoPro.ssl.cl_118.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_57.w(Unknown Source)
        at ru.CryptoPro.ssl.cl_58.a(Unknown Source)
        at ru.CryptoPro.ssl.cl_58.run(Unknown Source)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at ru.CryptoPro.ssl.cl_59.run(Unknown Source)
        at io.netty.handler.ssl.SslHandler.runAllDelegatedTasks(SslHandler.java:1499)
        at io.netty.handler.ssl.SslHandler.runDelegatedTasks(SslHandler.java:1513)
        at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1397)
        at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1224)
        at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1271)
        at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:505)
        at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:444)
        at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:283)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352)
        at io.netty.channel.ChannelInboundHandlerAdapter.channelRead(ChannelInboundHandlerAdapter.java:93)
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
        at java.base/sun.security.provider.certpath.SunCertPathBuilder.build(Unknown Source)
        at java.base/sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source)
        at java.base/java.security.cert.CertPathBuilder.build(Unknown Source)
        at ru.CryptoPro.reprov.CPCertPathBuilder.engineBuild(Unknown Source)
        at java.base/java.security.cert.CertPathBuilder.build(Unknown Source)


Перед этим такие сообщения


Так же вижу по логам, что выбирается не тот сертификат, который я создавал в соседнем треде.

Отредактировано пользователем 24 ноября 2020 г. 16:56:56(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#15 Оставлено : 24 ноября 2020 г. 18:03:46(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 688 раз в 649 постах
Автор: squadgazzz Перейти к цитате

ru.CryptoPro.ssl.pc_4.cl_5: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
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_118.a(Unknown Source)
at ru.CryptoPro.ssl.cl_118.a(Unknown Source)
at ru.CryptoPro.ssl.cl_118.checkServerTrusted(Unknown Source)

Не удается построить цепочку сертификатов сервера. Корневой сертификат серверной цепочки есть в trust store на клиенте?

Автор: squadgazzz Перейти к цитате

выбирается не тот сертификат, который я создавал в соседнем треде

Выбирается тот сертификат из контейнера, который был отобран по типу хранилища и паролю, а затем по наличию расширенного использования ключа "клиентская аутентификация" и издателю в списке присланных с сервера.

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

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