Как установить КриптоПро расширения для 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

На web-сервере  должен быть установлен PHP 7.2
На нашем сервере установлено 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) Перейти в директорию с исходниками расширения:

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

Ваш вопрос решен?

Похожие статьи