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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline distep2  
#1 Оставлено : 13 ноября 2024 г. 8:56:31(UTC)
distep2

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

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

Сказал(а) «Спасибо»: 1 раз
Добрый день!

Моя задача выглядит следующим образом:

Необходимо построить TLS подключение с инстанс, у которого доступ наружу только через proxy на определенные адреса. Т.е. доступов куда либо еще нет, можно только построить TLS-туннель на целевой адрес. (вдруг это важно)

Ситуация следующая:


1. в проект добавлены следующие jar:

com.objsys.asn1j.runtime.asn1rt:1.4.2_19
ru.cryptopro.asn1p:5.0.45549
ru.cryptopro.cpssl:5.0.45549
ru.cryptopro.JCryptoP:5.0.45549
ru.cryptopro.jcp:5.0.45549
ru.cryptopro.JCPRevCheck:5.0.45549
ru.cryptopro.JCPRevTools:5.0.45549

2. собрал проект и локально (на MAC OS) все работает.
3. собираю Docker в котором устанавливаю cryptopro и ключ следующими командами

Код:

bash /usr/csp/install.sh kc1
/opt/cprocsp/bin/amd64/certmgr -install -store mMy -file /usr/tls/private-key.pfx -pfx -at_signature -silent -pin $TLS_PRIVATE_KEY_PIN


4. пытаюсь собранный образ запустить, но на этапе инициализации получаю следующие ошибки:

Цитата:

java.lang.Exception: Class ru.CryptoPro.JCP.KeyStore.Rutoken.stores.RutokenStore003 not found or not valid



[2024-11-12 17:17:47,204] DEBUG [JCPLogger] [main] [] Exception ignored
java.io.FileNotFoundException: /var/opt/cprocsp/keys/root/hsm_keys/name.key (No such file or directory)

[2024-11-12 17:17:47,204] DEBUG [JCPLogger] [main] [] Exception ignored
java.io.FileNotFoundException: /var/opt/cprocsp/keys/root/hsm_keys/header.key (No such file or directory)

[2024-11-12 17:17:47,204] DEBUG [SSLLogger] [main] [] Entry 85237428@2024-07-04-Dxxx Kxxx Axxx is not an entry with private key and certificate, continue.


Помогите разобраться:

1. почему локально без Rutoken.jar работает, а тут не может его найти?
2. что не так с установкой ключа? он указанные файлы складывает в /var/opt/cprocsp/keys/85237428.000/ или в /var/opt/cprocsp/keys/root/85237428.000/ если при импорте ключа выбирать uMy


p.s. при попытке точно также установить cryptopro и ключ в докер и отправлять из него запросы с помощью stunnel все работает как надо.


также далее в логах нашел:

Цитата:

DEBUG [JCPLogger] [main] [] Connecting: http://cdp.skbkontur.ru/cdp/skbkontur-q-2024.crl
DEBUG [JCPLogger] [main] [] Exception fetching CRL: http://cdp.skbkontur.ru/cdp/skbkontur-q-2024.crl (status: -1)
DEBUG [JCPLogger] [main] [] Connecting: http://cdp2.skbkontur.ru/cdp/skbkontur-q-2024.crl
DEBUG [JCPLogger] [main] [] Exception fetching CRL: http://cdp2.skbkontur.ru/cdp/skbkontur-q-2024.crl (status: -1)
DEBUG [SSLLogger] [main] [] IGNORE THROWN
ru.CryptoPro.ssl.pc_10.cl_5: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target



при попытке отправить сам запрос получаю:

Цитата:

[2024-11-13 10:01:47,114] DEBUG [SSLLogger] [I/O dispatcher 1] [] TrustAnchor is null, trustedMatch is false.
[2024-11-13 10:01:47,116] DEBUG [SSLLogger] [I/O dispatcher 1] [] *** Revocation parameters
ru.CryptoPro.ssl.checkRevocation: false
com.sun.security.enableCRLDP: true
com.ibm.security.enableCRLDP: true
parameters from MFS: false
[2024-11-13 10:01:48,075] DEBUG [JCPLogger] [I/O dispatcher 1] [] Exception fetching CRL: http://testgost2012.cryptopro.ru/CertEnroll/!0422!0435!0441!0442!043e!0432!044b!0439%20!0423!0426%20!041e!041e!041e%20!0022!041a!0420!0418!041f!0422!041e-!041f!0420!041e!0022(10).crl (status: -1)
[2024-11-13 10:01:48,075] DEBUG [JCPLogger] [I/O dispatcher 1] [] Connecting: http://testgost2012.cryp...oll/testgost2012(10).crl
[2024-11-13 10:01:48,075] DEBUG [JCPLogger] [I/O dispatcher 1] [] Exception fetching CRL: http://testgost2012.cryp...oll/testgost2012(10).crl (status: -1)
[2024-11-13 10:01:48,082] ERROR [SSLLogger] [I/O dispatcher 1] [] I/O dispatcher 1, fatal error: 46: General SSLEngine problem
ru.CryptoPro.ssl.pc_10.cl_5: PKIX path validation failed: java.security.cert.CertPathValidatorException: Could not determine revocation status
at ru.CryptoPro.ssl.pc_10.cl_2.a(Unknown Source) ~[cpssl-5.0.45549.jar:45549-A]
[2024-11-13 10:01:48,092] ERROR [SSLLogger] [I/O dispatcher 1] [] I/O dispatcher 1 fatal: engine already closed. Rethrowing
[2024-11-13 10:01:48,092] ERROR [SSLLogger] [I/O dispatcher 1] [] javax.net.ssl.SSLHandshakeException: General SSLEngine problem
[2024-11-13 10:01:48,092] DEBUG [InternalIODispatch] [I/O dispatcher 1] [] http-outgoing-0 [ACTIVE] Exception
javax.net.ssl.SSLHandshakeException: General SSLEngine problem
at ru.CryptoPro.ssl.cl_64.B(Unknown Source) ~[cpssl-5.0.45549.jar:45549-A]
Caused by: ru.CryptoPro.ssl.pc_10.cl_5: PKIX path validation failed: java.security.cert.CertPathValidatorException: Could not determine revocation status
at ru.CryptoPro.ssl.pc_10.cl_2.a(Unknown Source) ~[cpssl-5.0.45549.jar:45549-A]

Отредактировано пользователем 13 ноября 2024 г. 14:54:06(UTC)  | Причина: добавил еще логи

Offline Санчир Момолдаев  
#2 Оставлено : 13 ноября 2024 г. 18:06:46(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 101 раз
Поблагодарили: 291 раз в 271 постах
Добрый день!

убедитесь что в хранилище которое идет в TrustedManager установлена цепочка сертификатов для удаленного веб сервера. сам сертификат веб сервера не должен быть в хранилище.

при установке через certmgr в контейнере нет цепочки, а она нужна для java.
либо загружайте цепочку в контейнер, либо готовьте свой KeyManager

см пример https://github.com/msham...ig/KeyManagerConfig.java
Техническую поддержку оказываем тут
Наша база знаний
Offline distep2  
#3 Оставлено : 14 ноября 2024 г. 8:54:18(UTC)
distep2

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

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

Сказал(а) «Спасибо»: 1 раз
Санчир, спасибо за ответ! С сертификатами Вы мне помогли разобраться какое-то время назад в другом топике. И там я как раз конфигурировал свой KeyManager.

На сервере стоят точно такие же сертификаты. Я еще раз все проверю, но пока что основной вопрос вот с этим куском лога, потому что такого локально не появлялось.

Цитата:

DEBUG [JCPLogger] [main] [] Connecting: http://cdp.skbkontur.ru/cdp/skbkontur-q-2024.crl
DEBUG [JCPLogger] [main] [] Exception fetching CRL: http://cdp.skbkontur.ru/cdp/skbkontur-q-2024.crl (status: -1)
DEBUG [JCPLogger] [main] [] Connecting: http://cdp2.skbkontur.ru/cdp/skbkontur-q-2024.crl
DEBUG [JCPLogger] [main] [] Exception fetching CRL: http://cdp2.skbkontur.ru/cdp/skbkontur-q-2024.crl (status: -1)

DEBUG [JCPLogger] [I/O dispatcher 1] [] Exception fetching CRL: http://testgost2012.cryptopro.ru/CertEnroll/!0422!0435!0441!0442!043e!0432!044b!0439%20!0423!0426%20!041e!041e!041e%20!0022!041a!0420!0418!041f!0422!041e-!041f!0420!041e!0022(10).crl (status: -1)
DEBUG [JCPLogger] [I/O dispatcher 1] [] Connecting: http://testgost2012.cryp...oll/testgost2012(10).crl
DEBUG [JCPLogger] [I/O dispatcher 1] [] Exception fetching CRL: http://testgost2012.cryp...oll/testgost2012(10).crl (status: -1)

DEBUG [InternalIODispatch] [I/O dispatcher 1] [] http-outgoing-0 [ACTIVE] Exception
javax.net.ssl.SSLHandshakeException: General SSLEngine problem
at ru.CryptoPro.ssl.cl_64.B(Unknown Source) ~[cpssl-5.0.45549.jar:45549-A]
Caused by: ru.CryptoPro.ssl.pc_10.cl_5: PKIX path validation failed: java.security.cert.CertPathValidatorException: Could not determine revocation status
at ru.CryptoPro.ssl.pc_10.cl_2.a(Unknown Source) ~[cpssl-5.0.45549.jar:45549-A]


Поскольку наши сервера стоят за прокси с авторизацией по динамическим токенам, то доступа наружу нет. И сконфигурировать дефолтное через System.property не выйдет, потому что необходимо кастомизировать хедеры для прокси. То вопросы такие:

1. может ли это быть причиной?
2. можно ли обойтись без походов в интернет за CRL?
3. если нельзя, то есть ли какая-нибудь опция чтобы кастомизировать HttpClient который используется для этих походов?
Offline Санчир Момолдаев  
#4 Оставлено : 14 ноября 2024 г. 15:35:34(UTC)
Санчир Момолдаев

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

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

Сказал(а) «Спасибо»: 101 раз
Поблагодарили: 291 раз в 271 постах
Автор: distep2 Перейти к цитате

Поскольку наши сервера стоят за прокси с авторизацией по динамическим токенам, то доступа наружу нет. И сконфигурировать дефолтное через System.property не выйдет, потому что необходимо кастомизировать хедеры для прокси. То вопросы такие:
1. может ли это быть причиной?

конечно.

Автор: distep2 Перейти к цитате
2. можно ли обойтись без походов в интернет за CRL?

это снижает безопасность, но можно

варианта два. отключить проверку на отзыв для tls.
1) для java11+ (без sudo, под целевым пользователем)
Цитата:
java -cp ".:*:" ru.CryptoPro.JCP.Util.SetPrefs -user -node ru/CryptoPro/ssl -key Enable_CRL_revocation_ofline_default -value false
java -cp ".:*:" ru.CryptoPro.JCP.Util.SetPrefs -user -node ru/CryptoPro/ssl -key Enable_revocation_default -value false

главное запомните. это не System Properties, это Preferences, через -D не передадите.
либо через CLI задавайте, либо программно, до загрузки провайдеров добавить в Preferences userRoot
https://github.com/msham...ientApplication.java#L21

2)
отключить все проверки вообще
tmfTrustAny
https://github.com/msham.../TrustManagerConfig.java

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

Техническую поддержку оказываем тут
Наша база знаний
thanks 1 пользователь поблагодарил Санчир Момолдаев за этот пост.
distep2 оставлено 15.11.2024(UTC)
Offline distep2  
#5 Оставлено : 15 ноября 2024 г. 10:02:15(UTC)
distep2

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

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

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