Установка КриптоПро расширения для PHP
Для скачивания дистрибутивов КРИПТО-ПРО необходимо предварительно зарегистрироваться на сайте.
Главная > Продукты > КриптоПро CSP > Загрузка файлов
КриптоПро CSP 5.0
https://www.cryptopro.ru/products/csp/downloads
Сертифицированная версия КриптоПро CSP 5.0.11455 (Fury) от 8.05.2019.
КриптоПро CSP 5.0 для Linux (x64, deb)
https://www.cryptopro.ru/sites/default/files/private/csp/50/11455/linux-amd64_deb.tgz
КриптоПро ЭЦП SDK 2.0
https://www.cryptopro.ru/products/cades/downloads
Linux 64 бита - полный путь:
https://www.cryptopro.ru/sites/default/files/products/cades/current_release_2_0/cades_linux_amd64.tar.gz
libphpcades
Для сборки расширения libphpcades смотрите инструкцию: https://docs.cryptopro.ru/cades/phpcades/phpcades-install
Обратите внимание на пункт 8: Если используется PHP 7, то применить файл патча для php7. Если используется PHP 8, то применить файл патча для php8.
На нашем сервере установлено Ubuntu Server 18.04.4 (64-bit)
1) Установить пакеты:
libboost-dev
php-dev
libxml2-dev
команда в терминале:
sudo apt-get install libboost-dev php-dev libxml2-dev
2) Скачать архив с КриптоПро CSP 5.0, распаковать этот архив:
tar xvf linux-amd64_deb.tgz
и установить минимальный набор пакетов КриптоПро CSP:
cd linux-amd64_deb sudo ./install.sh
3) Скачать архив с КриптоПро ЭЦП SDK, распаковать этот архив:
tar xvf cades_linux_amd64.tar.gz
и установить следующие пакеты:
cprocsp-pki-2.0.1-cades
lsb-cprocsp-devel
cprocsp-pki-2.0.1-phpcades
Команда:
cd cades-linux-amd64 # dpkg -i \ cprocsp-pki-cades_2.0.0-1_amd64.deb \ lsb-cprocsp-devel_5.0.11535-4_all.deb \ cprocsp-pki-phpcades_2.0.0-1_amd64.deb
4) В файле: /opt/cprocsp/src/phpcades/Makefile.unix
указать путь к директории с исходниками PHP в переменной PHPDIR
.
5) Скопировать файл патча для PHP 7 в директорию с исходниками расширения:
# cp ./php7_support.patch /opt/cprocsp/src/phpcades
6) Установить g++-6 и сделать g++-6 версией для g++ по умолчанию:
# apt-get install g++-6 # update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-6 10 # update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 10 # update-alternatives --config g++
7) Выполнить конфигурацию PHP
cd "путь до папки с исходниками PHP" ./configure
или в случае ошибки -
./configure --prefix="путь до папки с исходниками PHP" SQLITE_CFLAGS=1 SQLITE_LIBS=1
Перейти в директорию с исходниками расширения и выполнить сборку расширения:
cd /opt/cprocsp/src/phpcades patch -p0 < ./php7_support.patch eval `/opt/cprocsp/src/doxygen/CSP/../setenv.sh --64`; make -f Makefile.unix
8) Вывести путь к расширениям PHP: php -i | grep extension_dir
9) Создать в директории с расширениями символическую ссылку на собранную библиотеку libphpcades.so:
$ ln -s файлИсточник файлСсылки
10) В файле php.ini добавить расширение:
extension=libphpcades.so
11) Перезагрузить сервер и проверить выполнение тестового скрипта (сохранить в php файл), который проверяет возможность работы с собранной библиотекой из php:
<?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()); } ?>
Добавление корневых сертификатов УЦ
скачать файлы в /var/tmp/
Выполнить добавление:
sudo /opt/cprocsp/bin/amd64/certmgr -inst -store mRoot -file "/var/tmp/root_mks.cer" sudo /opt/cprocsp/bin/amd64/certmgr -inst -store mRoot -file "/var/tmp/root_guc.cer"
Или через curl:
sudo curl http://e-trust.gosuslugi.ru/Shared/DownloadCert?thumbprint=4BC6DC14D97010C41A26E058AD851F81C842415A|sudo /opt/cprocsp/bin/amd64/certmgr -inst -store mRoot -stdin sudo curl url-нужногосертификата|sudo /opt/cprocsp/bin/amd64/certmgr -inst -store mRoot -stdin
Дополнительное руководство
https://wiki.astralinux.ru/pages/viewpage.action?pageId=32833902