Статус: Активный участник
Группы: Участники
Зарегистрирован: 28.08.2008(UTC) Сообщений: 204 ![Мужчина Мужчина](/forum2/Themes/soclean/male.gif) ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Сказал «Спасибо»: 9 раз Поблагодарили: 1 раз в 1 постах
|
Здравствуйте. При переходе на версию JCP 2.0 (до этого была 1.0.54), столкнулись с проблемой при проверке цепочки сертификатов. Сама цепочка выглядит следующим образом: 1. Корневой сертификат 2. Промежуточный сертификат 3. Кросс сертификат 4. Клиентский сертификат Проверка осуществляется следующим образом: Код:
System.setProperty("com.sun.security.enableCRLDP", "true");
System.setProperty("com.ibm.security.enableCRLDP", "true");
// Получаем все необходимые сертификаты
CertificateFactory newfactory = CertificateFactory.getInstance("X.509");
X509Certificate Rootcertificate = (X509Certificate) newfactory.generateCertificate(new FileInputStream("C:/dev/root.cer"));
X509Certificate uccertificate = (X509Certificate) newfactory.generateCertificate(new FileInputStream("C:/dev/int.cer"));
X509Certificate crosscertificate = (X509Certificate) newfactory.generateCertificate(new FileInputStream("C:/dev/cross.cer"));
X509Certificate clientcertificate = (X509Certificate) newfactory.generateCertificate(new FileInputStream("C:/dev/client.cer"));
final KeyStore keyStore = KeyStore.getInstance("HDImageStore");
keyStore.load(new FileInputStream("C:/dev/newstore"), "changeit".toCharArray());
final List<Certificate> certs = new ArrayList<Certificate>(4);
certs.add(Rootcertificate);
certs.add(uccertificate);
certs.add(crosscertificate);
certs.add(clientcertificate);
final TrustAnchor anchor =
new TrustAnchor((X509Certificate) Rootcertificate, null);
final CollectionCertStoreParameters par =
new CollectionCertStoreParameters(certs);
final CertStore store = CertStore.getInstance("Collection", par);
// инициализация объекта построения цепочки сертификатов
final CertPathBuilder cpb = CertPathBuilder.getInstance("PKIX");
// инициализация параметров построения цепочки сертификатов
final PKIXBuilderParameters params = new PKIXBuilderParameters(
Collections.singleton(anchor), new X509CertSelector());
// добавление к параметрам сертификатов, из которых
// будет строиться цепочка
params.addCertStore(store);
// инициализация объекта выборки сертификата, которым
// заканчивается построение цепочки
final X509CertSelector selector = new X509CertSelector();
// определение сертификата, которым
// заканчивается построение цепочки
selector.setCertificate((X509Certificate) clientcertificate);
params.setTargetCertConstraints(selector);
params.setSigProvider("JCP");
params.setRevocationEnabled(false);
// построение цепочки сертификатов
final PKIXCertPathBuilderResult res =
(PKIXCertPathBuilderResult) cpb.build(params);
/* Проверка построенной цепочки сертификатов */
params.setRevocationEnabled(true);
// инициализация объекта проверки цепочки сертификатов
final CertPathValidator validator = CertPathValidator.getInstance("PKIX");
//или для совместимости с КриптоПро УЦ
//CertPathValidator validator = CertPathValidator.getInstance("CPPKIX");
// проверка цепочки сертификатов
final CertPathValidatorResult val_res =
validator.validate(res.getCertPath(), params);
// вывод результата проверки в строком виде
System.out.println(val_res.toString());
Сваливается на cpb.build: Код:Exception in thread "main" sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
При этом, если будем проверять не клиентский сертификат (clientcertificate), а кросс (crosscertificate) то построение проходит. В версии 1.0.54 такой проблемы небыло.
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 28.08.2008(UTC) Сообщений: 204 ![Мужчина Мужчина](/forum2/Themes/soclean/male.gif) ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Сказал «Спасибо»: 9 раз Поблагодарили: 1 раз в 1 постах
|
В ControlPane.bat цепочка до клиентского сертификата также не проверяется. Проверяется до кросс-сертификата. В самой системе (Windows 8) цепочка сертификатов строится до клиентского.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,003 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 714 раз в 674 постах
|
Здравствуйте. Приложите, пожалуйста, цепочку сертификатов. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 28.08.2008(UTC) Сообщений: 204 ![Мужчина Мужчина](/forum2/Themes/soclean/male.gif) ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Сказал «Спасибо»: 9 раз Поблагодарили: 1 раз в 1 постах
|
Автор: afev ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) Здравствуйте. Приложите, пожалуйста, цепочку сертификатов. Вложение(я): ![](/forum2/Themes/soclean/icon_file.gif) tocpro.zip (7kb) загружен 13 раз(а).У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться.
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,003 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 714 раз в 674 постах
|
Можете сказать, в какой строке в приложенном коде происходит ошибка? |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 26.07.2011(UTC) Сообщений: 13,476 ![Мужчина Мужчина](/forum2/Themes/soclean/male.gif) ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Сказал «Спасибо»: 553 раз Поблагодарили: 2243 раз в 1749 постах
|
Могу предположить: т.к. client.cer - содержит в себе корневой сертификат УЦ ЗАО ТаксНет ... Пользователь Андрей * прикрепил следующие файлы: ![](/forum2/Themes/soclean/icon_file.gif) цепочка.png (103kb) загружен 23 раз(а).У Вас нет прав для просмотра или загрузки вложений. Попробуйте зарегистрироваться. |
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,003 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 714 раз в 674 постах
|
С текущей сборкой JCP 2.0 воспроизвести не удается, строится цепочка из 3 сертификатов + 1 в trust anchor, т.е. всего 4, и проверяется. KeyStore из примера я убрал, он не используется. ControlPane не проверяет цепочку, максимум может построить, но CertStore все же предполагает хранение корневых сертификатов. Отредактировано пользователем 12 января 2015 г. 14:39:52(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 28.08.2008(UTC) Сообщений: 204 ![Мужчина Мужчина](/forum2/Themes/soclean/male.gif) ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Сказал «Спасибо»: 9 раз Поблагодарили: 1 раз в 1 постах
|
Автор: afev ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) Можете сказать, в какой строке в приложенном коде происходит ошибка? 54 строка Код:янв 12, 2015 3:48:37 PM ru.CryptoPro.JCP.tools.Starter check
INFO: Loading JCP 2.0 37985
янв 12, 2015 3:48:37 PM ru.CryptoPro.JCP.tools.Starter check
INFO: JCP loaded.
Exception in thread "main" sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:196)
at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:268)
at Cades.Cert.NewChainCheck(Cert.java:160)
at Main.main(Main.java:12)
Автор: afev ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) С текущей сборкой JCP 2.0 воспроизвести не удается, строится цепочка из 3 сертификатов + 1 в trust anchor, т.е. всего 4, и проверяется. KeyStore из примера я убрал, он не используется. ControlPane не проверяет цепочку, максимум может построить, но CertStore все же предполагает хранение корневых сертификатов.
Обновился до сборки 2.0.37985. Версия JDK 1.7.0_51. Проблема осталась. Что еще можно посмотреть?
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 06.12.2008(UTC) Сообщений: 4,003 ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Откуда: Крипто-Про Сказал(а) «Спасибо»: 21 раз Поблагодарили: 714 раз в 674 постах
|
Получил вашу ошибку на 1.7.0_51. |
|
|
|
|
Статус: Активный участник
Группы: Участники
Зарегистрирован: 28.08.2008(UTC) Сообщений: 204 ![Мужчина Мужчина](/forum2/Themes/soclean/male.gif) ![Российская Федерация Российская Федерация](/forum2/Content/images/flags/RU.png) Сказал «Спасибо»: 9 раз Поблагодарили: 1 раз в 1 постах
|
Автор: afev ![Перейти к цитате Перейти к цитате](/forum2/Themes/soclean/icon_latest_reply.gif) Получил вашу ошибку на 1.7.0_51. Это связано с этим?
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close