Статус: Участник
Группы: Участники
Зарегистрирован: 07.03.2023(UTC) Сообщений: 14  Откуда: Крым Сказал(а) «Спасибо»: 2 раз
|
Здравствуйте! Есть два сертфиката, выданных СертумПро. Одним подпись создается успешно, а другим нет через php. Корневой и промежуточный сертификаты установлены, которые прислал сам УЦ. Удивительно, то что, используя сертификат для подписания средствами командной строки, то подпись создается успешно, правда процесс занимает около 3 секунд в первый раз. При повторном запуске уже быстро подписывается. Если использовать сертификат, которым можно без ошибок подписать средствами php, то с ним подпись создается достаточно быстро(до секунды) и средствами php, и через CLI. Текст ошибки из php: "A certificate chain could not be built to a trusted root authority.(0x800B010A)" Команда подписи через CLI: Цитата:cryptcp -sign -addchain -thumbprint <cert_thumbprint> -attached message.txt Код php: Цитата:public function signString(SignStringCommand $command): Contracts\Response { $signResponse = new SignResponse(); $thumbprint = config('cryptopro.certificateThumbprint'); $pinKey = config('cryptopro.certificatePinKey'); try { $cert = $this->repository->find(CERTIFICATE_FIND_SHA1_HASH, $thumbprint); if (!$cert) { throw new \DomainException(sprintf('Not found certificate by thumbprint %s', $thumbprint)); } $signer = new \CPSigner(); $signer->set_Certificate($cert); //$signer->set_KeyPin($pinKey); $sd = new \CPSignedData(); $sd->set_Content($command->getString()); /** * @see https://docs.cryptopro.r.../icpsigneddata2signcades */ $signResponse->setPayload((string) $sd->SignCades($signer, CADES_BES, $command->getSignType(), ENCODE_BASE64)); } catch (\Throwable $e) { $signResponse->setPayload($e->getMessage()); $signResponse->setStatus(Response::HTTP_BAD_REQUEST); } return $signResponse; } Параллельно веду переписку с УЦ. Собственно неясно это проблема с php расширением или с сертфикатом. Служба поддержки УЦ предложила установить еще список отозванных сертификатов, но не помогло.
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 07.03.2023(UTC) Сообщений: 14  Откуда: Крым Сказал(а) «Спасибо»: 2 раз
|
Техническая поддержка Сертум Про пришла к выводу, что проблема не в сертификате. Цитата:Ранее в переписке вы сообщили, что у вас нет ошибки на странице https://www.cryptopro.ru...e/cades_bes_sample.html, а это означает, что рабочее место и сертификат работают корректно. Так что дело тут в настройках вашей системы, с помощью которой идёт подписание. К сожалению, в данной ситуации мы помочь не сможем. в общем, неясно почему с одним сертификатом подпись работает через php_CPCSP, а другой дает ошибку - "A certificate chain could not be built to a trusted root authority.(0x800B010A)"
|
|
|
|
Статус: Сотрудник
Группы: Участники
Зарегистрирован: 30.06.2016(UTC) Сообщений: 3,470   Сказал «Спасибо»: 53 раз Поблагодарили: 798 раз в 737 постах
|
Автор: AlexKrym  Техническая поддержка Сертум Про пришла к выводу, что проблема не в сертификате. Цитата:Ранее в переписке вы сообщили, что у вас нет ошибки на странице https://www.cryptopro.ru...e/cades_bes_sample.html, а это означает, что рабочее место и сертификат работают корректно. Так что дело тут в настройках вашей системы, с помощью которой идёт подписание. К сожалению, в данной ситуации мы помочь не сможем. в общем, неясно почему с одним сертификатом подпись работает через php_CPCSP, а другой дает ошибку - "A certificate chain could not be built to a trusted root authority.(0x800B010A)" Вероятно, подписание через php и через cli производится от разных пользователей. Установите корневой сертификата в хранилище mroot (m - machine, то есть для компьютера, будет действовать для всех пользователей). |
|
|
|
|
Статус: Участник
Группы: Участники
Зарегистрирован: 07.03.2023(UTC) Сообщений: 14  Откуда: Крым Сказал(а) «Спасибо»: 2 раз
|
Устанавливаю от root: Цитата: certmgr -install -store mroot -file root.cer certmgr -install -store mca -file cross.cer
pfx устанавливаю из под пользователя nginx: Цитата:certmgr -install -pfx -file <path_to_pfx> -silent -pin 123 Кстати, если подписывать вот так из php: Цитата:exec(sprintf('/opt/cprocsp/bin/amd64/cryptcp %s', $signStringCliRequest->toArgs()), $output); то подписание успешно проходит. Подписание просиходит от пользователя nginx
|
|
|
|
Быстрый переход
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.
Important Information:
The Форум КриптоПро uses cookies. By continuing to browse this site, you are agreeing to our use of cookies.
More Details
Close