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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline danillezz  
#1 Оставлено : 23 января 2020 г. 15:07:46(UTC)
danillezz

Статус: Новичок

Группы: Участники
Зарегистрирован: 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 что то?
Online Евгений Афанасьев  
#2 Оставлено : 23 января 2020 г. 15:57:36(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Здравствуйте.
Ошибка сообщает, что не удается проверить цепочку сертификатов сервера (возможно, переадресация CRL с http на https, она не поддерживается).
Включите логирование с помощью JCPLogger и SSLogger с уровнем ALL - см. https://support.cryptopr...lirovnija-kriptopro-jtls
и соберите лог.
Offline danillezz  
#3 Оставлено : 23 января 2020 г. 16:20:14(UTC)
danillezz

Статус: Новичок

Группы: Участники
Зарегистрирован: 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.

Затем выдает стек ошибок.
Online Евгений Афанасьев  
#4 Оставлено : 23 января 2020 г. 17:21:27(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Вероятно, не удается скачать CRL из сети.
Offline danillezz  
#5 Оставлено : 23 января 2020 г. 17:30:53(UTC)
danillezz

Статус: Новичок

Группы: Участники
Зарегистрирован: 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


Хотя через браузер идет нормально.
Offline danillezz  
#6 Оставлено : 23 января 2020 г. 17:58:52(UTC)
danillezz

Статус: Новичок

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

Сказал(а) «Спасибо»: 2 раз
Автор: Евгений Афанасьев Перейти к цитате
Вероятно, не удается скачать CRL из сети.


Лог с уровнем ALL отправил на почту
Online Евгений Афанасьев  
#7 Оставлено : 24 января 2020 г. 10:26:36(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
По-прежнему по какой-то причине у вас по указанным адресам не грузятся 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)  | Причина: Не указана

thanks 1 пользователь поблагодарил Евгений Афанасьев за этот пост.
danillezz оставлено 29.01.2020(UTC)
Offline danillezz  
#8 Оставлено : 29 января 2020 г. 8:37:13(UTC)
danillezz

Статус: Новичок

Группы: Участники
Зарегистрирован: 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...

Может быть, у вас настроен файрволл, прокси, которые не пропускают соединение?


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