КриптоПро расширение для PHP 7

Все вопросы/проблемы по установке и использовании.
Аватара пользователя
rozen
Сообщения: 172
Зарегистрирован: 25 мар 2015, 12:11
Имя: Андрей
Откуда: Красноярск

Re: КриптоПро расширение для PHP 7

Сообщение rozen »

Расширение заработало, но при добавлении сертификата 502 Bad Gateway
В логах сервера:

Код: Выделить всё

2020/10/28 08:58:22 [error] 1067#1067: *4188 recv() failed (104: Connection reset by peer) while reading response header from upstream, 
client: 10.89.*.*, server: cto.krw.rzd, request: "POST /rukovoditel/index.php?module=users/signature_account&action=update HTTP/2.0", 
upstream: "fastcgi://unix:/var/run/php/php7.4-fpm.sock:", host: "cto.krw.rzd", 
referrer: "https://cto.krw.rzd/rukovoditel/index.php?module=users/signature_update"
Проверка настройки показывает: test init OK
Сертификаты добавлены.

В системных логах такое:

Код: Выделить всё

Oct 29 10:03:44 10 ool www: <capi10>CryptEnumOIDInfo!failed: LastError = 0xEA
Oct 29 10:03:44 10 ool www: <capi10>CryptVerifySignatureW!failed: LastError = 0x80090006
Oct 29 10:03:44 10 ool www: <capi20>CryptVerifyCertificateSignature!failed: LastError = 0x80090006
Oct 29 10:03:44 10 ool www: <capi20>CertOpenStore!failed: LastError = 0x2
Oct 29 10:03:44 10 ool www: <capi20>CertOpenStore!failed: LastError = 0x2
Oct 29 10:03:49 10 ool www: <capi10>CryptEnumOIDInfo!failed: LastError = 0xEA
Oct 29 10:03:49 10 ool www: <capi10>CryptVerifySignatureW!failed: LastError = 0x80090006
Oct 29 10:03:49 10 ool www: <capi20>CryptVerifyCertificateSignature!failed: LastError = 0x80090006
Oct 29 10:03:49 10 ool www: <capi20>CertOpenStore!failed: LastError = 0x2
Oct 29 10:03:49 10 ool www: <capi20>CertOpenStore!failed: LastError = 0x2
Решил проверить хранилище сертификатов: с нем пусто.
Но добавление проходит без ошибок. Вот только куда? :shock:

Код: Выделить всё

 /opt/cprocsp/bin/amd64/certmgr -list
Certmgr 1.1 (c) "КРИПТО-ПРО", 2007-2020.
Программа для работы с сертификатами, CRL и хранилищами.
=============================================================================
Список сертификатов пуст

Требуемый сертификат не существует.
Аватара пользователя
rozen
Сообщения: 172
Зарегистрирован: 25 мар 2015, 12:11
Имя: Андрей
Откуда: Красноярск

Re: КриптоПро расширение для PHP 7

Сообщение rozen »

Сейчас так: сертификатов больше. Показал один.

Код: Выделить всё

sudo /opt/cprocsp/bin/amd64/certmgr -list -store mRoot
[sudo] password for rozen:
Certmgr 1.1 (c) "КРИПТО-ПРО", 2007-2020.
Программа для работы с сертификатами, CRL и хранилищами.
=============================================================================
1-------
Издатель            : E=dit@minsvyaz.ru, C=RU, S=77 Москва, L=г. Москва, STREET="улица Тверская, дом 7", O=Минкомсвязь России, OGRN=1047702026701, INN=007710474375, CN=Минкомсвязь России
Субъект             : E=uc@mil.ru, OGRN=1037700255284, INN=007704252261, C=RU, S=77 г. Москва, L=Москва, STREET="ул. Знаменка, д. 19", OU=4 центр (удостоверяющий) войсковой части 31659, O=Министерство обороны Российской Федерации, CN=Министерство обороны Российской Федерации
Серийный номер      : 0x3252B37400000000044E
Хэш SHA1            : 1e4977c9cad2358853391267d4e5d47e4ca7ba6f
Идентификатор ключа : 650b083aa72a8dc7a6449682b97df99d6b8e2aa8
Алгоритм подписи    : ГОСТ Р 34.11-2012/34.10-2012 256 бит
Алгоритм откр. кл.  : ГОСТ Р 34.10-2012 (512 бит)
Выдан               : 31/07/2020  11:15:02 UTC
Истекает            : 31/07/2035  11:15:02 UTC
Ссылка на ключ      : Нет
URL сертификата УЦ  : http://reestr-pki.ru/cdp/guc_gost12.crt
URL списка отзыва   : http://reestr-pki.ru/cdp/guc_gost12.crl
URL списка отзыва   : http://company.rt.ru/cdp/guc_gost12.crl
URL списка отзыва   : http://rostelecom.ru/cdp/guc_gost12.crl
Что не работает - не понимаю. Либо модуль сбоит, но проверку проходит. Либо ... либо.
Кстати, тест от КриптоПро не проходит.

Код: Выделить всё

Cannot find object or property. (0x80092004)TEST FAIL 

Код: Выделить всё

PHP Fatal error:  Uncaught Error: Class 'CPStore' not found 
Аватара пользователя
rozen
Сообщения: 172
Зарегистрирован: 25 мар 2015, 12:11
Имя: Андрей
Откуда: Красноярск

Re: КриптоПро расширение для PHP 7

Сообщение rozen »

Выполнение через командную строку кода:

Код: Выделить всё

<?php
ini_set("log_errors", 1);
ini_set ('display_errors', 1);
error_reporting (E_ALL);  
try
{   $sd = new CPSignedData();
    $content = "test content"; 
    $sd = new CPSignedData();
    $sd->set_Content($content); 
    printf("test init OK\n");
}
catch (Exception $e)
{
    printf($e->getMessage());
} 
?>
Ответ:

Код: Выделить всё

Fatal error: Uncaught Error: Class 'CPSignedData' not found in /var/www/html/site/csp.php:6
Аватара пользователя
rozen
Сообщения: 172
Зарегистрирован: 25 мар 2015, 12:11
Имя: Андрей
Откуда: Красноярск

Re: КриптоПро расширение для PHP 7

Сообщение rozen »

Продолжу:

Сделал:

Код: Выделить всё

php -i|grep php.ini
Configuration File (php.ini) Path => /etc/php/7.4/cli
Loaded Configuration File => /etc/php/7.4/cli/php.ini
Это странно, так как phpinfo показывает

Код: Выделить всё

Loaded Configuration File /etc/php/7.4/fpm/php.ini
Я вносил extension=libphpcades.so в файл /etc/php/7.4/fpm/php.ini
Сейчас внес в /etc/php/7.4/cli/php.ini

Делаю проверку:

Код: Выделить всё

sudo php -f /opt/cprocsp/src/phpcades/test_extension.php
[sudo] password for rozen:
Cannot find object or property. (0x80092004)TEST FAIL

Ответ поддержки КриптоПро:

Код: Выделить всё

>>sudo php -f /opt/cprocsp/src/phpcades/test_extension.php
>>[sudo] password for rozen:
>>Cannot find object or property. (0x80092004)TEST FAIL
Расширение корректно работает.

Если Вы запускаете проверочный скрипт через sudo, то под пользователем root у Вас должен быть установлен личный сертификат с привязкой к соответствующему ключевому контейнеру с указанной строкой (по умолчанию в скрипте - "Test") в поле "Субъект" сертификата.

Вы можете сменить строку в скрипте или пользователя для прохождения проверки с помощью тестового скрипта.
Аватара пользователя
Евгений
Сообщения: 467
Зарегистрирован: 11 июл 2016, 13:21
Имя: Евгений
Откуда: Петропавловск-Камчатский

Re: КриптоПро расширение для PHP 7

Сообщение Евгений »

rozen писал(а): 20 июл 2020, 11:42 Добрый день!
Кто-то установил расширение для PHP от КриптоПро?
Подскажите пожалуйста, какой версией php у вас получилось работать с ЭЦП на сервере Руководитель?
У меня PHP Version 7.3.31-1~deb10u1

Я настроил модуль ЭЦП, сертификаты видны в списке выбора, но при нажатии на кнопку "Выбрать" сертификат не подключается, выпадает ошибка: "при проверке токена, некорректные данные: []"
Screenshot_20220412_111737.png
Ответить