Неофициальная консольная утилита, написанная на PHP, для работы с системой Честный Знак.
Утилита позволяет просматривать и манипулировать данными системы Честный Знак посредством набора официальных API:
- PHP 7.4+
- КриптоПРО CSP 5+
- libphpcades (является частью КриптоПРО CSP SDK)
- Действуйщий сертификат Усиленной Квалифицированной Электронной Подписи (УКЭП)
Установка через composer:
composer require kilylabs/true-api-cli
Установка КриптоПРО CSP 5+
Скачать можно отсюда (требуется авторизация). Вроде как в данном ПО есть бесплатный период использования, но у меня он толком не заработал. Поэтому пришлось купить официальную лицензию здесь (лучше брать пожизненную лицензию "Лицензия на обновление СКЗИ "КриптоПро CSP" до версии 5.0 на одном рабочем месте с доступом на портал технической поддержки" - она не на много дороже, чем годовая подписка).
Установка хорошо описана в статье: https://estp.ru/test_eds/csp_setup_linux/ (описание подходит для версии 5).
После установки, нужно установить сертификат: https://estp.ru/test_eds/cert_install_linux/
Чтобы не быть привязанным к флешке, скопируйте папку с сертификатом УКЭП в папку:
cp -r /media/flash/cert.000 /var/opt/cprocsp/keys/имя_пользователя/
А после, установите сертификат командой:
/opt/cprocsp/bin/amd64/csptestf -absorb -certs
Установка libphpcades
Процедура установки описана здесь... но для PHP7 это работать на будет ) Чтобы сделать это всё работоспособным для PHP7+, нужно установить патч. Полная процедура установки расширения примерно такая:
- Скачиваем спец. версию cprocsp-devel пакета
wget https://www.cryptopro.ru/sites/default/files/public/faq/csp/csp5devel.tgz
tar xvzf csp5devel.tgz
cd csp5devel
dpkg -i lsb-cprocsp-devel_5.0.11863-5_all.deb
- Качаем и устанавливаем КриптоПРО CADES
mkdir cades
wget https://www.cryptopro.ru/sites/default/files/products/cades/current_release_2_0/cades-linux-amd64.tar.gz -O cades/cades-linux-amd64.tar.gz
cd cades
tar xvzf cades-linux-amd64.tar.gz
dpkg -i cprocsp-pki-phpcades-64_2.0.14458-1_amd64.deb cprocsp-pki-cades-64_2.0.14458-1_amd64.deb
- Применяем специальный патч для поддержки PHP7+
cp ../true-api-cli/contrib/php7_support.patch /opt/cprocsp/src/phpcades/
cd /opt/cprocsp/src/phpcades/
patch <php7_support.patch
- В файле
/opt/cprocsp/src/phpcades/Makefile.unix
в переменную PHPDIR прописываем путь к хедерам нужной версии php Для PHP7.4PHPDIR=/usr/include/php/20190902
Там же, добавьте в конец строки, заканчивающийся на -fPIC -DPIC
строку -fpermissive
. В итоге должно получиться что-то вроде:
...
-DSIZEOF_VOID_P=$(SIZEOF_VOID_P) -fPIC -DPIC -fpermissive
...
- Компилируем
eval `/opt/cprocsp/src/doxygen/CSP/../setenv.sh --64`; make -f Makefile.unix
Если всё прошло хорошо, в каталоге будет файл libphpcades.so 6) Подключаем библиотеку В выводе php -i | grep extension_dir получаем путь к папке с расширениями и создаем там симплинк на собранную libphpcades.so
ln -s /opt/cprocsp/src/phpcades/libphpcades.so /usr/lib/php/20190902/
В файле php.ini добавляем в самый конец: extension=libphpcades.so
Проверить корректность установки PHP-расширения можно с помощью команды:
# php -m|grep CPCSP
php_CPCSP
#
TODO