Статус: Участник
Группы: Участники
Зарегистрирован: 04.02.2020(UTC) Сообщений: 25  Откуда: Ростов на Дону Сказал(а) «Спасибо»: 3 раз
|
Добрый день. Нам необходимо реализовать маркировку обуви через php сервер. Для этого поставили расширение php по иструкции https://cpdn.cryptopro.r...ontent/cades/plugin.htmlвопрос почему этой командой выводиться список контейнеров csptest -keyset -enum_cont -fqcn -verifyc Цитата: csptest -keyset -enum_cont -fqcn -verifyc CSP (Type:80) v4.0.9019 KC1 Release Ver:4.0.9963 OS:Linux CPU:AMD64 FastCode:READY:AVX. AcquireContext: OK. HCRYPTPROV: 18449939 \\.\HDIMAGE\test \\.\HDIMAGE\My \\.\HDIMAGE\test4 \\.\HDIMAGE\test5 OK. Total: SYS: 0,010 sec USR: 0,020 sec UTC: 0,070 sec [ErrorCode: 0x00000000]
а когда запускаем php Цитата: 'Exception' with message 'The system cannot find the file specified. (0x80070002)'
in /var/www/code_geek/om_api/common/components/api/CrptApi.php:127
Stack trace: #0 /var/www/code_geek/om_api/common/components/api/CrptApi.php(127): CPStore->Open(2, 'test5', 0) #1 /var/www/code_geek/om_api/common/components/api/CrptApi.php(96): common\components\api\CrptApi->getCertificate(2, 'test5', 0, 1, 'TEST5', 0, 1)
сертификат CN=TEST5 есть в контейнере test5 Цитата:certmgr -list -store my Certmgr 1.1 (c) "Crypto-Pro", 2007-2018. program for managing certificates, CRLs and stores WARNING: Legacy parameter: "-store my" ============================================================================= 1------- Issuer : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2 Subject : CN=TEST5 Serial : 0x120040728127288F175B04FCA7000100407281 SHA1 Hash : 8f4783fdce2460222820449fddb48d51ca5483bd SubjKeyID : a98228bb20dd6293114e9b12d386405f5c582602 Signature Algorithm : ГОСТ Р 34.11/34.10-2001 PublicKey Algorithm : ГОСТ Р 34.10-2001 (512 bits) Not valid before : 04/02/2020 10:23:03 UTC Not valid after : 04/05/2020 10:33:03 UTC PrivateKey Link : Yes Container : HDIMAGE\\test5.000\B80B Provider Name : Crypto-Pro GOST R 34.10-2001 KC1 CSP Provider Info : ProvType: 75, KeySpec: 1, Flags: 0x0 CA cert URL : http://testca.cryptopro....Test%20Center%202(1).crtOCSP URL : http://testca.cryptopro.ru/ocsp/ocsp.srfCDP : http://testca.cryptopro....Test%20Center%202(1).crlExtended Key Usage : 1.3.6.1.5.5.7.3.4 т.е. php не видит существующие контейнеры?
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 03.12.2018(UTC) Сообщений: 1,226  Сказал(а) «Спасибо»: 104 раз Поблагодарили: 292 раз в 272 постах
|
а если с большой буквы. TEST5 сначала ищется сертификат - а далее по ссылке получают закрытый ключ Отредактировано пользователем 4 февраля 2020 г. 14:33:45(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 04.02.2020(UTC) Сообщений: 25  Откуда: Ростов на Дону Сказал(а) «Спасибо»: 3 раз
|
Цитата: 'Exception' with message 'The system cannot find the file specified. (0x80070002)'
in /var/www/code_geek/om_api/common/components/api/CrptApi.php:127
Stack trace: #0 /var/www/code_geek/om_api/common/components/api/CrptApi.php(127): CPStore->Open(2, 'TEST5', 0) #1 /var/www/code_geek/om_api/common/components/api/CrptApi.php(96): common\components\api\CrptApi->getCertificate(2, 'TEST5', 0, 1, 'TEST5', 0, 1)
Тоже самое если TEST5 PHP 7.3.14-1 так понимаю дело в расширении PHP?
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 03.12.2018(UTC) Сообщений: 1,226  Сказал(а) «Спасибо»: 104 раз Поблагодарили: 292 раз в 272 постах
|
что вы передаете при вызове метода SetupCertificate (если использовалась наша страница)? |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 04.02.2020(UTC) Сообщений: 25  Откуда: Ростов на Дону Сказал(а) «Спасибо»: 3 раз
|
В getCertificate приходят эти парамерты: int(2) string(5) "TEST5" int(0) int(1) string(5) "TEST5" int(0) int(1) Цитата: private function signData(string $data): string { $certQuery = 'TEST5'; $storageName = 'TEST5';
$cert = $this->getCertificate(CURRENT_USER_STORE, $storageName, STORE_OPEN_READ_ONLY, CERTIFICATE_FIND_SUBJECT_NAME, $certQuery, 0, 1); if (!$cert) { throw new Exception('Certificate not found'); } $signer = new \CPSigner(); $signer->set_TSAAddress(self::TSP_ADDRESS); $signer->set_Certificate($cert);
$sd = new \CPSignedData(); $sd->set_ContentEncoding(1); $sd->set_Content(\base64_encode($data));
$sm = $sd->SignCades($signer, 1, false, 0); $sd->VerifyCades($sm, 1, false);
return $sm; } private function getCertificate($location, $name, $mode, $findType, $query, $validOnly, $number) { $store = new \CPStore(); $store->Open($location, $name, $mode); $certs = $store->get_Certificates(); if ($findType !== null) { $certs = $certs->Find($findType, $query, $validOnly); if (\is_string($certs)) { return $certs; } return $certs->Item($number); }
return $certs->Item($number); }
почему то видит только контейнер My даже если его удалить csptest -keyset -deletekeyset -cont '\\.\HDIMAGE\My' Цитата: csptest -keyset -enum_cont -fqcn -verifyc CSP (Type:80) v4.0.9019 KC1 Release Ver:4.0.9963 OS:Linux CPU:AMD64 FastCode:READY:AVX. AcquireContext: OK. HCRYPTPROV: 10503699 \\.\HDIMAGE\test \\.\HDIMAGE\test4 \\.\HDIMAGE\test5 OK. Total: SYS: 0,000 sec USR: 0,030 sec UTC: 0,090 sec [ErrorCode: 0x00000000]
и PHP все равно видит My, хотя его нету в списке
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 03.12.2018(UTC) Сообщений: 1,226  Сказал(а) «Спасибо»: 104 раз Поблагодарили: 292 раз в 272 постах
|
|
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 04.02.2020(UTC) Сообщений: 25  Откуда: Ростов на Дону Сказал(а) «Спасибо»: 3 раз
|
Подскажите пожалуйста что дальше делать: Пользоваться только конейнером My или надо сначала выяснить почему не видит другие контейнеры? Если можно только My то отсюда можно брать корневой и промежуточный сертификат для теста или нет? http://testca2012.cryptopro.ru/ui/Просто если сертификат работать не будет (Error building certification path for CN=TEST5: ru.CryptoPro.reprov.certpath.JCPCertPathBuilderException: unable to find valid certification path to requested target) - то не понятно php прочитала контейнер My или нет. А так можно было бы менять контейнеры.
|
|
|
|
Статус: Сотрудник
Группы: Администраторы, Участники Зарегистрирован: 03.12.2018(UTC) Сообщений: 1,226  Сказал(а) «Спасибо»: 104 раз Поблагодарили: 292 раз в 272 постах
|
my это не контейнер. это хранилище сертификатов судя по Цитата:certmgr -list -store my Certmgr 1.1 (c) "Crypto-Pro", 2007-2018. program for managing certificates, CRLs and stores WARNING: Legacy parameter: "-store my" ============================================================================= 1------- Issuer : E=support@cryptopro.ru, C=RU, L=Moscow, O=CRYPTO-PRO LLC, CN=CRYPTO-PRO Test Center 2 Subject : CN=TEST5 Serial : 0x120040728127288F175B04FCA7000100407281 SHA1 Hash : 8f4783fdce2460222820449fddb48d51ca5483bd SubjKeyID : a98228bb20dd6293114e9b12d386405f5c582602 Signature Algorithm : ГОСТ Р 34.11/34.10-2001 PublicKey Algorithm : ГОСТ Р 34.10-2001 (512 bits) Not valid before : 04/02/2020 10:23:03 UTC Not valid after : 04/05/2020 10:33:03 UTC PrivateKey Link : Yes Container : HDIMAGE\\test5.000\B80B Provider Name : Crypto-Pro GOST R 34.10-2001 KC1 CSP Provider Info : ProvType: 75, KeySpec: 1, Flags: 0x0 CA cert URL : http://testca.cryptopro....Test%20Center%202(1).crtOCSP URL : http://testca.cryptopro.ru/ocsp/ocsp.srfCDP : http://testca.cryptopro....Test%20Center%202(1).crlExtended Key Usage : 1.3.6.1.5.5.7.3.4 у вас в этом хранилище только один сертификат контейнеров несколько судя по csptest выполните /opt/cprocsp/bin/amd64/csptestf -absorb -cert (установим сертификаты с привязкой к ЗК со всех доступных контейнеров) это вообще из java+jcp. ошибка о том что не может построить доверие. скорее всего не установлен сертификаты цепочки в cacerts Цитата: Error building certification path for CN=TEST5: ru.CryptoPro.reprov.certpath.JCPCertPathBuilderException: unable to find valid certification path to requested target
Отредактировано пользователем 4 февраля 2020 г. 16:24:27(UTC)
| Причина: Не указана |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 04.02.2020(UTC) Сообщений: 25  Откуда: Ростов на Дону Сказал(а) «Спасибо»: 3 раз
|
из JAVA ошибка это я пытаюсь авторизоваться в честном знаке certmgr -list -store my у меня там сертификатов 13 штук, это я первый только показал, а как их поудалять оттуда? Цитата: dron@dron-pc:~$ /opt/cprocsp/bin/amd64/csptestf -absorb -cert Match: HDIMAGE\\test.000\2EF8 No cert for AT_KEYEXCHANGE key Match: HDIMAGE\\test4.000\79CB No cert for AT_KEYEXCHANGE key Match: HDIMAGE\\test5.000\B80B No cert for AT_KEYEXCHANGE key OK. Total: SYS: 0,010 sec USR: 0,020 sec UTC: 0,070 sec [ErrorCode: 0x00000000]
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 04.02.2020(UTC) Сообщений: 25  Откуда: Ростов на Дону Сказал(а) «Спасибо»: 3 раз
|
Подскажите как установить сертификаты цепочки в cacerts?
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close