Подписываю файл в терминале с помощью команды
csptestf -sfsign -sign -detached -add -in in.txt -out out.sgn
-base64 -my 'certificate_name' -password some_password -alg GOST94_256
В результате получаю открепленную подпись.
При вызове команды в php скрипте с помощью метода shell_exec()
возникает ошибка при получении сертификата, т.к. локальные сертификаты недоступны для пользователя www-data
.
An error occurred in running the program.
/dailybuildsbranches/CSP_4_0/CSPbuild/CSP/samples/csptest/tmain.c:1616:CertOpenStore
Error number 0x2 (2).
The system cannot find the file specified.
An error occurred in running the program.
/dailybuildsbranches/CSP_4_0/CSPbuild/CSP/samples/csptest/signtsf.c:389:Cannot find User certificate: certificate_name
Error number 0x2 (2).
The system cannot find the file specified.
Есть возможность подписать файл в php скрипте сертификатом другого пользователя или сделать сертификат доступным для всех пользователей?
Сертификат установлен в личное хранилище локального пользователя uMy.
Добавлять права в /etc/sudoers
на выполнение команды csptestf
под sudo
для пользователя www-data
нельзя.
Проверял подписывания файла в bash скрипте, в котором выполняется смена пользователя и подпись файла. При вызове bash скрипта в php возникает ошибка.
sudo: no tty present and no askpass program specified
sh: echo: I/O error
При установке сертификата в хранилище mCA, mMy также возникает ошибка при подписывании файла в php скрипте.
Здравствуйте, выполняю задания на С++ и всё хорошо, только вот проблема с таймеромВот кусок самого задания: