Подписываю файл в терминале с помощью команды
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 скрипте.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости