Статус: Новичок
Группы: Участники
Зарегистрирован: 21.01.2020(UTC) Сообщений: 7 Сказал(а) «Спасибо»: 2 раз
|
Добрый день! Использую JCP. Выдали контейнер .000 - импортировал его в JCP в HDImageStore Создал хранилище сертификатов CertStore - добавил туда корневой сертификат Минкомсвязи (может еще что то нужно? не до конца понял) Пароль одинаковый. tmf и kmf создаются успешно. Вот код инициализации sslcontext: Код:
char[] password = properties.getKeyPassword().toCharArray();
KeyManagerFactory kmf = KeyManagerFactory.getInstance("GostX509");
KeyStore keyStore = KeyStore.getInstance(JCP.HD_STORE_NAME);
keyStore.load(null, null);
kmf.init(keyStore, password);
char[] password = properties.getCertPassword().toCharArray();
String certPath = properties.getCertPath();
KeyStore trustStore = KeyStore.getInstance(JCP.CERT_STORE_NAME);
trustStore.load(new FileInputStream(certPath),
password); // хранилище корневых сертификатов
TrustManagerFactory tmf = TrustManagerFactory.getInstance("GostX509");
tmf.init(trustStore);
SSLContext sslCtx = SSLContext.getInstance(ru.CryptoPro.ssl.Provider.ALGORITHM_12); // Защищенный контекст
sslCtx.init(kmf.getKeyManagers(),
tmf.getTrustManagers(), null);
Но при подключении к https://portal.fedsfm.ru:8081/Services/ ошибка: Код: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_125.a(Unknown Source)
at ru.CryptoPro.ssl.cl_125.a(Unknown Source)
at ru.CryptoPro.ssl.cl_125.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.u(Unknown Source)
at ru.CryptoPro.ssl.cl_59.a(Unknown Source)
at ru.CryptoPro.ssl.cl_59.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at ru.CryptoPro.ssl.cl_60.run(Unknown Source)
at io.netty.handler.ssl.SslHandler.runDelegatedTasks(SslHandler.java:1464)
at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1369)
at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1203)
at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1247)
at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:502)
at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:441)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:278)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.handler.proxy.ProxyHandler.channelRead(ProxyHandler.java:255)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:438)
at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:255)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1408)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:930)
at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:677)
at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:612)
at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:529)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:491)
at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:905)
at java.lang.Thread.run(Thread.java:748)
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)
... 43 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)
... 49 more
Предполагаю что в хранилище доверенных сертификатов не то добавил, не совсем понятно что там должно лежать. Пробовал добавлять всю цепочку сертификатов сервера. Ситуация та же. В cacerts все сертификаты, какие возможно, импортировал. В CertStore только один корневой лежит и все. Или может с алгоритмами JCP что то?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,956 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 701 раз в 662 постах
|
Здравствуйте. Ошибка сообщает, что не удается проверить цепочку сертификатов сервера (возможно, переадресация CRL с http на https, она не поддерживается). Включите логирование с помощью JCPLogger и SSLogger с уровнем ALL - см. https://support.cryptopr...lirovnija-kriptopro-jtlsи соберите лог. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 21.01.2020(UTC) Сообщений: 7 Сказал(а) «Спасибо»: 2 раз
|
Автор: Евгений Афанасьев Здравствуйте. Ошибка сообщает, что не удается проверить цепочку сертификатов сервера (возможно, переадресация CRL с http на https, она не поддерживается). Включите логирование с помощью JCPLogger и SSLogger с уровнем ALL - см. https://support.cryptopr...lirovnija-kriptopro-jtlsи соберите лог. Не могу приложить лог из за ограничений сети - отправил на email текст. Сервис надолго виснет на этой строчке: FINE: Offline certificate verification disabled. CRL timer disabled. Затем выдает стек ошибок.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,956 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 701 раз в 662 постах
|
Вероятно, не удается скачать CRL из сети. |
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 21.01.2020(UTC) Сообщений: 7 Сказал(а) «Спасибо»: 2 раз
|
Автор: Евгений Афанасьев Вероятно, не удается скачать CRL из сети. Да, все верно. Указал прокси через System.setProperty(). Теперь такая ошибка: Код:Server returned HTTP response code: 403 for URL: http://reestr-pki.ru/cdp/guc_gost12.crl
Хотя через браузер идет нормально.
|
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 21.01.2020(UTC) Сообщений: 7 Сказал(а) «Спасибо»: 2 раз
|
Автор: Евгений Афанасьев Вероятно, не удается скачать CRL из сети. Лог с уровнем ALL отправил на почту
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 3,956 Откуда: Крипто-Про Сказал(а) «Спасибо»: 20 раз Поблагодарили: 701 раз в 662 постах
|
По-прежнему по какой-то причине у вас по указанным адресам не грузятся CRL'и. CRL'и из промежуточного сертификата серверной цепочки, сертификат: Код:
номер:
05 a1 b4 f7 00 00 00 00 00 4f
издатель:
CN = Минкомсвязь России
ИНН = 007710474375
ОГРН = 1047702026701
O = Минкомсвязь России
STREET = улица Тверская, дом 7
L = г. Москва
S = 77 Москва
C = RU
E = dit@minsvyaz.ru
[1]Точка распределения списка отзыва (CRL):
Имя точки распространения:
Полное имя:
URL=http://reestr-pki.ru/cdp/guc_gost12.crl
[2]Точка распределения списка отзыва (CRL)
Имя точки распространения:
Полное имя:
URL=http://company.rt.ru/cdp/guc_gost12.crl
[3]Точка распределения списка отзыва (CRL)
Имя точки распространения:
Полное имя:
URL=http://rostelecom.ru/cdp/guc_gost12.crl
Ни один из них не грузится (поэтому статус сертификата не установлен). Сделал пример и запрос по данному адресу: https://portal.fedsfm.ru:8081/Services/fedsfm-service/authenticate Проверка цепочки сервера выполнена успешно, CRL'и скачались (хотя запрос, конечно, не отработал): Код:
янв 24, 2020 10:18:48 AM ru.CryptoPro.reprov.certpath.CrlRevocationChecker verifyRevocationStatus
FINER: CrlRevocationChecker.verifyRevocationStatus() ---checking revocation status...
янв 24, 2020 10:18:48 AM ru.CryptoPro.reprov.certpath.URICertStore getInstance
FINER: CertStore URI: http://reestr-pki.ru/cdp/guc_gost12.crl
янв 24, 2020 10:18:48 AM ru.CryptoPro.reprov.certpath.URICertStore engineGetCRLs
FINE: Connecting: http://reestr-pki.ru/cdp/guc_gost12.crl
янв 24, 2020 10:18:48 AM ru.CryptoPro.reprov.certpath.URICertStore engineGetCRLs
FINER: Downloading new CRL...
янв 24, 2020 10:18:48 AM ru.CryptoPro.reprov.certpath.DistributionPointFetcher getCRLs
FINER: CRL does not satisfy the cert selector (match) or some other options (verifyCRL)
янв 24, 2020 10:18:48 AM ru.CryptoPro.reprov.certpath.URICertStore getInstance
FINER: CertStore URI: http://company.rt.ru/cdp/guc_gost12.crl
янв 24, 2020 10:18:48 AM ru.CryptoPro.reprov.certpath.URICertStore engineGetCRLs
FINE: Connecting: http://company.rt.ru/cdp/guc_gost12.crl
янв 24, 2020 10:18:48 AM ru.CryptoPro.reprov.certpath.URICertStore engineGetCRLs
FINER: Downloading new CRL...
янв 24, 2020 10:18:48 AM ru.CryptoPro.reprov.certpath.DistributionPointFetcher getCRLs
FINER: CRL does not satisfy the cert selector (match) or some other options (verifyCRL)
янв 24, 2020 10:18:48 AM ru.CryptoPro.reprov.certpath.URICertStore getInstance
FINER: CertStore URI: http://rostelecom.ru/cdp/guc_gost12.crl
янв 24, 2020 10:18:48 AM ru.CryptoPro.reprov.certpath.URICertStore engineGetCRLs
FINE: Connecting: http://rostelecom.ru/cdp/guc_gost12.crl
янв 24, 2020 10:18:48 AM ru.CryptoPro.reprov.certpath.URICertStore engineGetCRLs
FINER: Downloading new CRL...
Может быть, у вас настроен файрволл, прокси, которые не пропускают соединение? Отредактировано пользователем 24 января 2020 г. 10:27:22(UTC)
| Причина: Не указана |
|
1 пользователь поблагодарил Евгений Афанасьев за этот пост.
|
|
|
Статус: Новичок
Группы: Участники
Зарегистрирован: 21.01.2020(UTC) Сообщений: 7 Сказал(а) «Спасибо»: 2 раз
|
Автор: Евгений Афанасьев По-прежнему по какой-то причине у вас по указанным адресам не грузятся CRL'и. CRL'и из промежуточного сертификата серверной цепочки, сертификат: Код:
номер:
05 a1 b4 f7 00 00 00 00 00 4f
издатель:
CN = Минкомсвязь России
ИНН = 007710474375
ОГРН = 1047702026701
O = Минкомсвязь России
STREET = улица Тверская, дом 7
L = г. Москва
S = 77 Москва
C = RU
E = dit@minsvyaz.ru
[1]Точка распределения списка отзыва (CRL):
Имя точки распространения:
Полное имя:
URL=http://reestr-pki.ru/cdp/guc_gost12.crl
[2]Точка распределения списка отзыва (CRL)
Имя точки распространения:
Полное имя:
URL=http://company.rt.ru/cdp/guc_gost12.crl
[3]Точка распределения списка отзыва (CRL)
Имя точки распространения:
Полное имя:
URL=http://rostelecom.ru/cdp/guc_gost12.crl
Ни один из них не грузится (поэтому статус сертификата не установлен). Сделал пример и запрос по данному адресу: https://portal.fedsfm.ru:8081/Services/fedsfm-service/authenticate Проверка цепочки сервера выполнена успешно, CRL'и скачались (хотя запрос, конечно, не отработал): Код:
янв 24, 2020 10:18:48 AM ru.CryptoPro.reprov.certpath.CrlRevocationChecker verifyRevocationStatus
FINER: CrlRevocationChecker.verifyRevocationStatus() ---checking revocation status...
янв 24, 2020 10:18:48 AM ru.CryptoPro.reprov.certpath.URICertStore getInstance
FINER: CertStore URI: http://reestr-pki.ru/cdp/guc_gost12.crl
янв 24, 2020 10:18:48 AM ru.CryptoPro.reprov.certpath.URICertStore engineGetCRLs
FINE: Connecting: http://reestr-pki.ru/cdp/guc_gost12.crl
янв 24, 2020 10:18:48 AM ru.CryptoPro.reprov.certpath.URICertStore engineGetCRLs
FINER: Downloading new CRL...
янв 24, 2020 10:18:48 AM ru.CryptoPro.reprov.certpath.DistributionPointFetcher getCRLs
FINER: CRL does not satisfy the cert selector (match) or some other options (verifyCRL)
янв 24, 2020 10:18:48 AM ru.CryptoPro.reprov.certpath.URICertStore getInstance
FINER: CertStore URI: http://company.rt.ru/cdp/guc_gost12.crl
янв 24, 2020 10:18:48 AM ru.CryptoPro.reprov.certpath.URICertStore engineGetCRLs
FINE: Connecting: http://company.rt.ru/cdp/guc_gost12.crl
янв 24, 2020 10:18:48 AM ru.CryptoPro.reprov.certpath.URICertStore engineGetCRLs
FINER: Downloading new CRL...
янв 24, 2020 10:18:48 AM ru.CryptoPro.reprov.certpath.DistributionPointFetcher getCRLs
FINER: CRL does not satisfy the cert selector (match) or some other options (verifyCRL)
янв 24, 2020 10:18:48 AM ru.CryptoPro.reprov.certpath.URICertStore getInstance
FINER: CertStore URI: http://rostelecom.ru/cdp/guc_gost12.crl
янв 24, 2020 10:18:48 AM ru.CryptoPro.reprov.certpath.URICertStore engineGetCRLs
FINE: Connecting: http://rostelecom.ru/cdp/guc_gost12.crl
янв 24, 2020 10:18:48 AM ru.CryptoPro.reprov.certpath.URICertStore engineGetCRLs
FINER: Downloading new CRL...
Может быть, у вас настроен файрволл, прокси, которые не пропускают соединение? Все правильно. Сайты УЦ не были добавлены в белый список прокси сервера. Добавили - все взлетело.
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close