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

Уведомление

Icon
Error

4 Страницы123>»
Опции
К последнему сообщению К первому непрочитанному
Offline Oleg_tgl  
#1 Оставлено : 24 ноября 2012 г. 20:51:05(UTC)
Oleg_tgl

Статус: Активный участник

Группы: Участники
Зарегистрирован: 22.11.2012(UTC)
Сообщений: 77
Откуда: Тольятти

Добрый всем день! // Петька давления, 50, чего 50, а чего давление :-)

совсем недавно начал что то делать с ЭЦП, не могу прогнать пример "Пример создания подписи CAdES-BES." SignExample

примеры из каталогов CMS_samples и userSamples прогнал, все работает, а вот с SignExample затык

скачал эти jar и прикрепил к проекту на eclipse в виде библиотеки

CAdES.jar
bcmail-jdk15on-147.jar
bcpkix-jdk15on-147.jar
bcprov-jdk15on-147.jar
bctest-jdk15on-147.jar

модифицировал пример под "Rutoken"



try {

Collection<X509Certificate> chain = new ArrayList<X509Certificate>();

PrivateKey privateKey = Configuration.loadConfiguration(chain);

CAdESSignature cadesSignature = new CAdESSignature(false);

// Создаем подписанта CAdES-BES.
cadesSignature.addSigner(privateKey, chain, CAdESType.CAdES_BES, null); // валится здесь

....
return loadConfiguration("RutokenStore", null, null, KEY_ALIAS,
KEY_PASSWORD, chain);
....





24.11.2012 17:08:00 ru.CryptoPro.JCP.tools.Starter check
INFO: Loading JCP 1.0.53
24.11.2012 17:08:00 ru.CryptoPro.JCP.tools.Starter check
INFO: JCP loaded.
24.11.2012 17:08:01 ru.CryptoPro.JCP.tools.AbstractLicense checkSerialHash
INFO: Check license without company name: true
24.11.2012 17:08:02 ru.CryptoPro.CAdES.tools.Utility initJCPAlgorithms
INFO: Replacement of BouncyCastle GOST algorithms.
Exception in thread "main" java.lang.NoSuchMethodError: org.bouncycastle.asn1.x509.IssuerSerial.<init>(Lorg/bouncycastle/asn1/x509/GeneralNames;Lorg/bouncycastle/asn1/DERInteger;)V
at ru.CryptoPro.CAdES.tools.Utility.a(Unknown Source)
at ru.CryptoPro.CAdES.CAdESSignature.addSigner(Unknown Source)
at ru.CryptoPro.CAdES.CAdESSignature.addSigner(Unknown Source)
at CAdES.SignExample.main(SignExample.java:53)
Offline Oleg_tgl  
#2 Оставлено : 24 ноября 2012 г. 22:31:51(UTC)
Oleg_tgl

Статус: Активный участник

Группы: Участники
Зарегистрирован: 22.11.2012(UTC)
Сообщений: 77
Откуда: Тольятти

аха, нарыл дебрях нэта

bcmail-jdk16-146.jar
bcprov-ext-jdk16-146.jar
bcprov-jdk16-146.jar
bctsp-jdk16-146.jar

избавился от этой ошибки
Offline Oleg_tgl  
#3 Оставлено : 24 ноября 2012 г. 22:41:38(UTC)
Oleg_tgl

Статус: Активный участник

Группы: Участники
Зарегистрирован: 22.11.2012(UTC)
Сообщений: 77
Откуда: Тольятти

теперь выдает это

...

24.11.2012 19:37:59 ru.CryptoPro.JCP.tools.Starter check
INFO: Loading JCP 1.0.53
24.11.2012 19:37:59 ru.CryptoPro.JCP.tools.Starter check
INFO: JCP loaded.
24.11.2012 19:38:02 ru.CryptoPro.JCP.tools.AbstractLicense checkSerialHash
INFO: Check license without company name: true
24.11.2012 19:38:23 ru.CryptoPro.CAdES.tools.Utility initJCPAlgorithms
INFO: Replacement of BouncyCastle GOST algorithms.
24.11.2012 19:38:38 ru.CryptoPro.CAdES.CAdESSignature addSigner
INFO: Add signer certificate
serial number: 57e82f5800000000b225
subject: SURNAME=...
issuer: CN=UC Sertum-Pro, O=ООО Сертум-Про, L=Екатеринбург, C=RU, EMAILADDRESS=ca@sertum-pro.ru
24.11.2012 19:38:38 ru.CryptoPro.CAdES.b.d.a <clinit>
INFO: %%% Loading C:\Java\JDK\jre\lib\security\cacerts %%%
24.11.2012 19:38:38 ru.CryptoPro.CAdES.b.d.a <clinit>
INFO: %%% Trusted store loaded %%%
24.11.2012 19:38:39 ru.CryptoPro.CAdES.exception.CAdESException <init>
SEVERE: Error building certification path for SURNAME= ... sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

Error building certification path for SURNAME= ... sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target (33)
Offline Евгений Афанасьев  
#4 Оставлено : 25 ноября 2012 г. 1:34:09(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 708 раз в 669 постах
Здравствуйте. В архиве есть ридми.
Положили корневой сертификат в cacerts?
Offline Oleg_tgl  
#5 Оставлено : 25 ноября 2012 г. 13:18:01(UTC)
Oleg_tgl

Статус: Активный участник

Группы: Участники
Зарегистрирован: 22.11.2012(UTC)
Сообщений: 77
Откуда: Тольятти

дико извиняюсь :-)

- как мне указать PATH_TO_CA_CERT если у меня сертификат находится на ruToken(флэшке) ?
- можно как-то программно импортировать сертификат ?
(если несколько десятков компов c ПО на Java, версии меняются средствами JWS,
то при использовании Криптопро-JCP, придется пробегать по всем компам)


Цитата:
2) был импортирован корневой сертификат цепочки сертификатов в DER-кодировке в хранилище доверенных сертификатов JRE cacerts. Например, так:
keytool -importcert -file "<PATH_TO_CA_CERT>" -alias <CERT_ALIAS> -keystore "<PATH_TO_JRE>/lib/security/cacerts"
где keytool - утилита в папке <JRE>/bin,
PATH_TO_CA_CERT - путь к корневому сертификату,
CERT_ALIAS - алиас сертификата для установки в хранилище (например, cryptopro_ca),
PATH_TO_JRE - место установки JRE;
Offline Евгений Афанасьев  
#6 Оставлено : 25 ноября 2012 г. 19:20:12(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 708 раз в 669 постах
Попробуйте сделать так:
используя то же KeyStore, получите всю цепочку с токена (keyStore.getCertificateChain()), сохраните ее (сертификаты) в файлы, найдите среди них корневой сертификат (предположительно, это сертификат с индексом 1 в цепочке, если ваш клиентский сертификат считать нулевым), сохраните его в DER-кодировке, а дальше по инструкции.

Отредактировано пользователем 25 ноября 2012 г. 19:21:28(UTC)  | Причина: Не указана

Offline Oleg_tgl  
#7 Оставлено : 25 ноября 2012 г. 20:26:48(UTC)
Oleg_tgl

Статус: Активный участник

Группы: Участники
Зарегистрирован: 22.11.2012(UTC)
Сообщений: 77
Откуда: Тольятти

такой метод не нашел
Код:
 keyStore.getCertificateChain()

есть такой
Код:
Certificate[] java.security.KeyStore.getCertificateChain(String alias)


на флэшке два алиаса, в каждом по одному сертификату, не соображу что брать?

Код:
String alias = "ххххххххх@2012-10-19-ООО «ххх»";
String alias2 = "ххххххххх@2011-10-18-ООО «ххх»";
			
				keyStore = KeyStore.getInstance("RutokenStore");
				keyStore.load(null, null);
				Certificate[] cer = keyStore.getCertificateChain(alias);
				System.out.println(cer.length);

вот что примерно в сертификате

[
[
Version: V3
Subject: SURNAME=....
Signature Algorithm: 1.2.643.2.2.3, OID = 1.2.643.2.2.3

Key: ru.CryptoPro.JCP.Key.GostPublicKey
Validity: [From: Fri Oct 19 17:10:00 MSK 2012,
To: Tue Nov 19 17:11:00 MSK 2013]
Issuer: CN=UC Sertum-Pro, O=ООО Сертум-Про, L=Екатеринбург, C=RU, EMAILADDRESS=ca@sertum-pro.ru
SerialNumber: [ 57e82f58 00000000 b225]

Certificate Extensions: 9
[1]: ObjectId: 1.3.6.1.5.5.7.1.1 Criticality=false
AuthorityInfoAccess [
[
accessMethod: 1.3.6.1.5.5.7.48.2
accessLocation: URIName: http://ca.sertum-pro.ru/...tes/sertum-pro-2011.crt,
accessMethod: 1.3.6.1.5.5.7.48.2
accessLocation: URIName: http://ca.sertum.ru/cert...ates/sertum-pro-2011.crt]
]

[2]: ObjectId: 2.5.29.17 Criticality=false
SubjectAlternativeName [
RFC822Name: natav63@yandex.ru
]

[3]: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: 07 D0 64 10 C1 36 6F 30 51 2C 08 A6 A5 79 FB 47 ..d..6o0Q,...y.G
0010: 3D 9A 51 DE =.Q.
]

]

[4]: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 24 DD 5A 0F 90 B1 5F C8 F6 64 E3 9C FA 06 17 DD $.Z..._..d......
0010: 06 DD B2 6A ...j
]
]

[5]: ObjectId: 1.2.643.2.2.49.2 Criticality=false
Extension unknown: DER encoded OCTET string =
0000: 04 76 30 74 30 64 16 32 68 74 74 70 3A 2F 2F 73 .v0t0d.2http://s
0010: 65 72 74 75 6D 2E 72 75 2F 61 62 6F 75 74 2F 64 ertum.ru/about/d
0020: 6F 63 75 6D 65 6E 74 73 2F 63 72 79 70 74 6F 70 ocuments/cryptop
0030: 72 6F 2D 6C 69 63 65 6E 73 65 0C 2A D0 A1 D0 9A ro-license.*....
0040: D0 91 20 D0 9A D0 BE D0 BD D1 82 D1 83 D1 80 20 .. ............
0050: D0 B8 20 D0 A1 D0 B5 D1 80 D1 82 D1 83 D0 BC 2D .. ............-
0060: D0 9F D1 80 D0 BE 03 02 05 E0 04 0C 2E 05 DB 62 ...............b
0070: D3 E3 D3 89 29 76 B0 09 ....)v..


[6]: ObjectId: 2.5.29.16 Criticality=false
PrivateKeyUsage: [
From: Fri Oct 19 17:10:00 MSK 2012, To: Tue Nov 19 17:10:00 MSK 2013]

[7]: ObjectId: 2.5.29.37 Criticality=false
ExtendedKeyUsages [
clientAuth
emailProtection
1.2.643.2.2.34.6
1.2.643.3.185.1
1.2.643.6.3.1.1
1.2.643.3.7.5.70
1.2.643.6.3.1.3.1
1.2.643.6.3.1.2.1
1.2.643.6.3.1.4.1
1.2.643.6.3.1.4.2
1.2.643.6.3.1.4.3
1.2.643.3.7.0.1.13
]

[8]: ObjectId: 2.5.29.31 Criticality=false
CRLDistributionPoints [
[DistributionPoint:
[URIName: http://ca.sertum-pro.ru/cdp/sertum-pro-2011.crl]
, DistributionPoint:
[URIName: http://ca.sertum.ru/cdp/sertum-pro-2011.crl]
]]

[9]: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
DigitalSignature
Non_repudiation
Key_Encipherment
Data_Encipherment
]

]
Algorithm: [1.2.643.2.2.3]
Signature:
0000: AE 68 2E 3D A4 68 5A E0 EA E3 0C 9F 7C 2D 76 21 .h.=.hZ......-v!
0010: 28 7F CD A8 87 86 43 7E 2E 5F 13 B0 0B DF DE 66 (.....C.._.....f
0020: AF 32 39 9C 84 AB 3C 80 41 3A 21 42 6F 82 12 C0 .29...<.A:!Bo...
0030: 46 DD 3D 15 C0 1A 36 B7 C8 F4 B1 04 9E 88 2A 20 F.=...6.......*

]
Offline Евгений Афанасьев  
#8 Оставлено : 25 ноября 2012 г. 20:32:33(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 708 раз в 669 постах
В классе Configuration в примерах кадеса (samples.jar/CAdES) есть функция loadConfiguration(), он как раз и грузит всю цепочку из контейнера:
Код:

List<Certificate> lChain = Arrays.asList(keyStore.getCertificateChain(alias));


В примере SignExample есть код:
Код:

Collection<X509Certificate> chain = new ArrayList<X509Certificate>();
PrivateKey privateKey = Configuration.loadConfiguration(chain);


Проверьте, сколько сертификатов в chain, т.к. загрузиться должны все, что есть в контейнере, по алиасу.
У вас вывелся один сертификат, значит, корневого в контейнере на токене нет. Загрузите его из вашего УЦ (Issuer: CN=UC Sertum-Pro, O=ООО Сертум-Про, L=Екатеринбург, C=RU, EMAILADDRESS=ca@sertum-pro.ru).
Offline Oleg_tgl  
#9 Оставлено : 25 ноября 2012 г. 21:22:30(UTC)
Oleg_tgl

Статус: Активный участник

Группы: Участники
Зарегистрирован: 22.11.2012(UTC)
Сообщений: 77
Откуда: Тольятти

корневой сертификат скачал с

http://ca.skbkontur.ru/about/certificates течто Центр сертификации UC Sertum-Pro (2012)

запустил
keytool -importcert -file "F:/J_crypto_home/cades/UCSertum-Pro_Sert/" -alias cryptopro_ca -keystore "C:/Java/JDK/jre/lib/security/cacerts"

требует пароль, не соображу что за пароль и где ее взять?
Offline Oleg_tgl  
#10 Оставлено : 25 ноября 2012 г. 21:41:04(UTC)
Oleg_tgl

Статус: Активный участник

Группы: Участники
Зарегистрирован: 22.11.2012(UTC)
Сообщений: 77
Откуда: Тольятти

похоже по умолчанию этот
password is "changeit"
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
4 Страницы123>»
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.