Статус: Активный участник
Группы: Участники
Зарегистрирован: 20.10.2011(UTC) Сообщений: 45 Откуда:: Moscow
Сказал(а) «Спасибо»: 7 раз
|
Собрал Spring Boot приложение с JCP версии 2.0.41940-A. При старте приложения (под bellsoft-jdk11.0.15.1+2-macos-amd64) есть логика по скачиванию промежуточных сертификатов (и проверка подписи полученного xml прежде чем перейти непосредственно к скачиванию самих сертификатов). При проверке xmldsig получаю ошибку недостаточных прав на создание папки /var/opt/cprocsp/tmp. Но почему она вообще создается? Объясните разницу пакетов, которые получаю при скачивании с вашего сайта - JCP и JCSP. Код:2022-06-22 17:44:56.491 INFO 71734 --- [ main] r.c.c.j.d.s.TrustedCertificatesService : TrustedIntermediateCertificatesStorage is empty. Start download.
2022-06-22 17:44:56.494 INFO 71734 --- [ main] r.c.c.j.d.s.TrustedCertificatesService : Connect to https://e-trust.gosuslugi.ru/app/scc/portal/api/v1/portal/ca/getxml
2022-06-22 17:45:05.290 INFO 71734 --- [ main] r.c.c.j.d.s.TrustedCertificatesService : Got response from https://e-trust.gosuslugi.ru/app/scc/portal/api/v1/portal/ca/getxml
2022-06-22 17:45:05.516 INFO 71734 --- [ main] ru.CryptoPro.JCP.tools.JCPLogger : Loading JCP 2.0.41940-A
2022-06-22 17:45:05.547 ERROR 71734 --- [ main] ru.CryptoPro.JCP.tools.JCPLogger : ERROR occurred during loading JCP
java.lang.ExceptionInInitializerError: null
at ru.CryptoPro.JCP.tools.Starter.<init>(Unknown Source)
at ru.CryptoPro.JCP.tools.Starter.<init>(Unknown Source)
at ru.CryptoPro.JCP.tools.cl_33.<clinit>(Unknown Source)
at ru.CryptoPro.JCP.tools.Starter.a(Unknown Source)
at ru.CryptoPro.JCP.tools.Starter.check(Unknown Source)
at ru.CryptoPro.JCP.Sign.cl_0.<init>(Unknown Source)
at ru.CryptoPro.JCP.Sign.GostElSign.<init>(Unknown Source)
at ru.CryptoPro.JCP.Sign.GostElSign2012_256.<init>(Unknown Source)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at java.base/java.security.Provider.newInstanceUtil(Provider.java:154)
at java.base/java.security.Provider$Service.newInstance(Provider.java:1894)
at java.base/java.security.Signature.isSpi(Signature.java:331)
at java.base/java.security.Signature.getInstance(Signature.java:274)
at ru.CryptoPro.JCPxml.xmldsig.SignatureGostR3410.<init>(Unknown Source)
at ru.CryptoPro.JCPxml.xmldsig.SignatureGostR3410$SignatureGostR34102012_256_GostR3411_2012_256_URN.<init>(Unknown Source)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
at java.base/java.lang.Class.newInstance(Class.java:584)
at org.apache.xml.security.algorithms.SignatureAlgorithm.getSignatureAlgorithmSpi(SignatureAlgorithm.java:151)
at org.apache.xml.security.algorithms.SignatureAlgorithm.<init>(SignatureAlgorithm.java:134)
at org.apache.xml.security.signature.SignedInfo.<init>(SignedInfo.java:186)
at org.apache.xml.security.signature.XMLSignature.<init>(XMLSignature.java:405)
at org.apache.xml.security.signature.XMLSignature.<init>(XMLSignature.java:378)
at ru.croc.ctp.sign.impl.crypto.CryptoProSignCryptoService.createXmlSignature(CryptoProSignCryptoService.java:292)
at ru.croc.ctp.sign.impl.crypto.CryptoProSignCryptoService.xmldsigVerify(CryptoProSignCryptoService.java:161)
at ru.croc.ctp.just.dsig.sign.TrustedCertificatesService.downloadIntermediateCertificates(TrustedCertificatesService.java:106)
at ru.croc.ctp.just.dsig.sign.TrustedCertificatesService.init(TrustedCertificatesService.java:84)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:366)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:309)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:136)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:416)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1679)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:573)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:495)
at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:755)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:881)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:551)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:142)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:386)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:307)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1242)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1230)
at ru.croc.ctp.just.dsig.Application.main(Application.java:52)
Caused by: ru.CryptoPro.JCP.Random.RandomRefuseException: null
at ru.CryptoPro.JCP.Random.CertifiedRandom.b(Unknown Source)
at ru.CryptoPro.JCP.Random.CertifiedRandom.a(Unknown Source)
at ru.CryptoPro.JCP.Random.CertifiedRandom.<init>(Unknown Source)
at ru.CryptoPro.JCP.Random.CPRandom.<init>(Unknown Source)
at ru.CryptoPro.JCP.Random.CPRandom.<clinit>(Unknown Source)
... 57 common frames omitted
Caused by: java.io.FileNotFoundException: null
at ru.CryptoPro.JCP.KeyStore.cl_20.b(Unknown Source)
at ru.CryptoPro.JCP.tools.LocalMutex.a(Unknown Source)
at ru.CryptoPro.JCP.tools.LocalMutex.<init>(Unknown Source)
... 62 common frames omitted
Caused by: java.security.PrivilegedActionException: null
at java.base/java.security.AccessController.doPrivileged(Native Method)
... 64 common frames omitted
Caused by: java.io.IOException: Failed to create path: /var/opt/cprocsp/tmp
at ru.CryptoPro.JCP.tools.cl_36.a(Unknown Source)
at ru.CryptoPro.JCP.tools.cl_20.run(Unknown Source)
... 65 common frames omitted
Отредактировано пользователем 22 июня 2022 г. 18:04:44(UTC)
| Причина: Не указана
|
|
|
|
Статус: Сотрудник
Группы: Модератор, Участники Зарегистрирован: 03.12.2018(UTC) Сообщений: 1,193 Сказал(а) «Спасибо»: 100 раз Поблагодарили: 274 раз в 254 постах
|
Добрый день! JCP - полноценное СКЗИ работающее в jvm JCSP - это враппер (обертка над CSP) где криптографические операции выполняются непосредственно в CSP. в JavaCSP также включен JCP. можете например установить JCP из дистрибутива JavaCSP по поводу файлов. в составе дистрибутива есть sh-ник который создает необходимою иерархию директорий с нужными правами. вы можете самостоятельно установить пути Код: final static String HD_IMAGE_NODE = "/ru/CryptoPro/JCP/KeyStore/HDImage";
final static String HD_IMAGE_KEY = "HDImageStore_class_default";
final static String TMP_NODE = "/ru/CryptoPro/JCP/tools";
final static String TMP_KEY = "UnixMutex_class_pathToLocks";
public static void main(String[] args) {
Preferences prefs = Preferences.userRoot();
// выводим старые значения.
System.out.println("old values:");
System.out.println(prefs.node(HD_IMAGE_NODE).get(HD_IMAGE_KEY, null));
System.out.println(prefs.node(TMP_NODE).get(TMP_KEY, null));
// устанавливаем новые значения.
prefs.node(HD_IMAGE_NODE).put(HD_IMAGE_KEY, "/tmp/keys/"); // каталог для ключей
prefs.node(TMP_NODE).put(TMP_KEY, "/var/tmp"); // каталог для лок-файлов
|
|
1 пользователь поблагодарил Санчир Момолдаев за этот пост.
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close