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

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline coldplay  
#1 Оставлено : 27 апреля 2016 г. 15:34:50(UTC)
coldplay

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

Группы: Участники
Зарегистрирован: 16.02.2016(UTC)
Сообщений: 60

Сказал(а) «Спасибо»: 18 раз
Поблагодарили: 2 раз в 2 постах
Здравствуйте. Столкнулся с проблемой подписи по примерам из cades. Имеется цепочка из двух сертификатов. В контрольной панели цепочка строится. Все сертификаты валидны. При подписи получаю следующее:
Код:

FINE: %%% Verifying the certificate chain for the target certificate
	serial number: 1aecd077000000000000
	subject: EMAILADDRESS=name@test.ru, CN=Имя Фамилия Отчество, O="ООО \"ТТТ\"", L=Москва, C=RU
	issuer: CN=CA-Test
	signature provider: JCP
	PKIX validator: CPPKIX of RevCheck
	revocation enabled: true
	online: true
	... %%%
Apr 27, 2016 2:38:24 PM ru.CryptoPro.CAdES.e.a.b a
FINE: Verify the certificate chain by use of CRL (online).
Apr 27, 2016 2:38:24 PM ru.CryptoPro.reprov.certpath.o a
WARNING: Exception getting CRL from CertStore: 
java.security.InvalidAlgorithmParameterException: org.bouncycastle.jce.provider.X509LDAPCertStoreSpi: parameter must be a org.bouncycastle.jce.X509LDAPCertStoreParameters object
LDAPCertStoreParameters: [
  serverName: localhost
  port: 389
]
	at org.bouncycastle.jce.provider.X509LDAPCertStoreSpi.<init>(Unknown Source)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:408)
	at java.security.Provider$Service.newInstance(Provider.java:1609)
	at sun.security.jca.GetInstance.getInstance(GetInstance.java:243)
	at sun.security.jca.GetInstance.getInstance(GetInstance.java:190)
	at java.security.cert.CertStore.getInstance(CertStore.java:228)
	at ru.CryptoPro.reprov.certpath.g.a(Unknown Source)
	at ru.CryptoPro.reprov.certpath.n.<init>(Unknown Source)
	at ru.CryptoPro.reprov.certpath.n.a(Unknown Source)
	at ru.CryptoPro.reprov.certpath.o.a(Unknown Source)
	at ru.CryptoPro.reprov.certpath.o.a(Unknown Source)
	at ru.CryptoPro.reprov.certpath.o.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:119)
	at sun.security.provider.certpath.PKIXCertPathValidator.validate(PKIXCertPathValidator.java:212)
	at sun.security.provider.certpath.PKIXCertPathValidator.validate(PKIXCertPathValidator.java:140)
	at sun.security.provider.certpath.PKIXCertPathValidator.engineValidate(PKIXCertPathValidator.java:79)
	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)
	at ru.CryptoPro.CAdES.e.a.b.a(Unknown Source)
	at ru.CryptoPro.CAdES.e.a.b.a(Unknown Source)
	at ru.CryptoPro.CAdES.CAdESSignature.addSigner(Unknown Source)
	at ru.CryptoPro.CAdES.CAdESSignature.addSigner(Unknown Source)
	at ru.test.test.test.RouteHelper.sign(RouteHelper.java:320)
	at ru.test.test.RouteHelperTest.CreateFor(RouteHelperTest.java:171)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:483)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:234)
	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:74)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:483)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)

Apr 27, 2016 2:38:24 PM ru.CryptoPro.reprov.certpath.o a
WARNING: Exception getting CRL from CertStore: 
java.security.InvalidAlgorithmParameterException: org.bouncycastle.jce.provider.X509LDAPCertStoreSpi: parameter must be a org.bouncycastle.jce.X509LDAPCertStoreParameters object
LDAPCertStoreParameters: [
  serverName: localhost
  port: 389
]
	at org.bouncycastle.jce.provider.X509LDAPCertStoreSpi.<init>(Unknown Source)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:408)
	at java.security.Provider$Service.newInstance(Provider.java:1609)
	at sun.security.jca.GetInstance.getInstance(GetInstance.java:243)
	at sun.security.jca.GetInstance.getInstance(GetInstance.java:190)
	at java.security.cert.CertStore.getInstance(CertStore.java:228)
	at ru.CryptoPro.reprov.certpath.g.a(Unknown Source)
	at ru.CryptoPro.reprov.certpath.n.<init>(Unknown Source)
	at ru.CryptoPro.reprov.certpath.n.a(Unknown Source)
	at ru.CryptoPro.reprov.certpath.o.a(Unknown Source)
	at ru.CryptoPro.reprov.certpath.o.a(Unknown Source)
	at ru.CryptoPro.reprov.certpath.o.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.a(Unknown Source)
	at ru.CryptoPro.reprov.certpath.CrlRevocationChecker.check(Unknown Source)
	at sun.security.provider.certpath.PKIXMasterCertPathValidator.validate(PKIXMasterCertPathValidator.java:119)
	at sun.security.provider.certpath.PKIXCertPathValidator.validate(PKIXCertPathValidator.java:212)
	at sun.security.provider.certpath.PKIXCertPathValidator.validate(PKIXCertPathValidator.java:140)
	at sun.security.provider.certpath.PKIXCertPathValidator.engineValidate(PKIXCertPathValidator.java:79)
	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)
	at ru.CryptoPro.CAdES.e.a.b.a(Unknown Source)
	at ru.CryptoPro.CAdES.e.a.b.a(Unknown Source)
	at ru.CryptoPro.CAdES.CAdESSignature.addSigner(Unknown Source)
	at ru.CryptoPro.CAdES.CAdESSignature.addSigner(Unknown Source)
	at ru.test.test.test.RouteHelper.sign(RouteHelper.java:320)
	at ru.test.test.RouteHelperTest.CreateFor(RouteHelperTest.java:171)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:483)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:234)
	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:74)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:483)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)

Apr 27, 2016 2:38:24 PM ru.CryptoPro.CAdES.e.a.b a
WARNING: ERROR
java.security.cert.CertPathValidatorException: Could not determine revocation status
	at sun.security.provider.certpath.PKIXMasterCertPathValidator.validate(PKIXMasterCertPathValidator.java:129)
	at sun.security.provider.certpath.PKIXCertPathValidator.validate(PKIXCertPathValidator.java:212)
	at sun.security.provider.certpath.PKIXCertPathValidator.validate(PKIXCertPathValidator.java:140)
	at sun.security.provider.certpath.PKIXCertPathValidator.engineValidate(PKIXCertPathValidator.java:79)
	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)
	at ru.CryptoPro.CAdES.e.a.b.a(Unknown Source)
	at ru.CryptoPro.CAdES.e.a.b.a(Unknown Source)
	at ru.CryptoPro.CAdES.CAdESSignature.addSigner(Unknown Source)
	at ru.CryptoPro.CAdES.CAdESSignature.addSigner(Unknown Source)
	at ru.test.test.test.RouteHelper.sign(RouteHelper.java:320)
	at ru.test.test.RouteHelperTest.CreateFor(RouteHelperTest.java:171)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:483)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69)
	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:234)
	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:74)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:483)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)

Apr 27, 2016 2:38:24 PM ru.CryptoPro.CAdES.e.a.b a
FINE: %%% Certificate chain is verified %%%
Apr 27, 2016 2:38:24 PM ru.CryptoPro.CAdES.exception.CAdESException <init>
SEVERE: Status of the signer certificate: sn 1aecd077000000000000 issued by CN=CA-Test is UNKNOWN or REVOKED

Status of the signer certificate: sn 1aecd077000000000000 issued by CN=CA-Test is UNKNOWN or REVOKED
, errors: 'Certificate status is revoked' (18) or 'Certificate status is unknown' (19)
	at ru.CryptoPro.CAdES.CAdESSignature.addSigner(Unknown Source)
	at ru.CryptoPro.CAdES.CAdESSignature.addSigner(Unknown Source)



Я правильно понимаю, что в сертификате стоит online: true, то должны быть указаны и CRL ? И если они не указаны , то идет попытка проверить по дефолтным localhost , что и заканчивается ошибкой ?
Есть ли способ отключить верификацию цепочки , при подписи в таких случаях ? System.setProperty("ru.cryptopro.notThrowIfChainIsInvalid", "true") не работает.

Отредактировано пользователем 27 апреля 2016 г. 15:36:07(UTC)  | Причина: Не указана

Offline Евгений Афанасьев  
#2 Оставлено : 27 апреля 2016 г. 16:01:47(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 714 раз в 674 постах
Здравствуйте.
online означает, что в ходе создания подписи происходит обращение в сеть за CRL для проверки статуса сертификата.
Какой адрес (и протокол) CRL указан в сертификате (Состав)?
Отключить проверку нельзя.

Отредактировано пользователем 27 апреля 2016 г. 16:02:26(UTC)  | Причина: Не указана

Offline coldplay  
#3 Оставлено : 27 апреля 2016 г. 16:20:02(UTC)
coldplay

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

Группы: Участники
Зарегистрирован: 16.02.2016(UTC)
Сообщений: 60

Сказал(а) «Спасибо»: 18 раз
Поблагодарили: 2 раз в 2 постах
Сертификат содержит следующую информацию для онлайн проверки:
ObjectId: 2.5.29.31 Criticality=false
CRLDistributionPoints [
[DistributionPoint:
[URIName: ldap:///CN=CA-Test-Equifax,CN=ca-host1,CN=CDP,CN=Public%20Key%20Services,CN=Services,CN=Configuration,DC=ca,DC=local?certificateRevocationList?base?objectClass=cRLDistributionPoint]
]]
Как быть в такой ситуации , если мы не можем отключить проверку ?
Offline Евгений Афанасьев  
#4 Оставлено : 28 апреля 2016 г. 12:32:51(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 714 раз в 674 постах
Постараемся проверить.
Offline Евгений Афанасьев  
#5 Оставлено : 7 июня 2016 г. 14:47:10(UTC)
Евгений Афанасьев

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

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

Сказал(а) «Спасибо»: 21 раз
Поблагодарили: 714 раз в 674 постах
Возможная проблема - отсутствие адреса сервера в ldap:///..., потому выбирается locahost с портом по умолчанию.
Offline coldplay  
#6 Оставлено : 7 июня 2016 г. 14:53:09(UTC)
coldplay

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

Группы: Участники
Зарегистрирован: 16.02.2016(UTC)
Сообщений: 60

Сказал(а) «Спасибо»: 18 раз
Поблагодарили: 2 раз в 2 постах
Возможно, но там могла быть указана любая другая недоступная урла. И получилось бы все равно тоже поведение с присланным сертификатом от заказчика.
Offline Евгений Афанасьев  
#7 Оставлено : 7 июня 2016 г. 14:59:31(UTC)
Евгений Афанасьев

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

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

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