From b9dde74500ce00189fef4e451d1cc596440d1771 Mon Sep 17 00:00:00 2001 From: Artem Vasilev Date: Tue, 14 Dec 2021 15:04:10 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D0=BD=D1=81=D1=82=D1=80=D1=83=D0=BA?= =?UTF-8?q?=D1=86=D0=B8=D0=B8=20=D0=BF=D0=BE=20=D1=83=D1=81=D1=82=D0=B0?= =?UTF-8?q?=D0=BD=D0=BE=D0=B2=D0=BA=D0=B5=20=D0=9A=D1=80=D0=B8=D0=BF=D1=82?= =?UTF-8?q?=D0=BE=D0=BF=D1=80=D0=BE=20=D0=BD=D0=B0=20Linux?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- install/deb.md | 1 + install/rpm8.md | 109 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 110 insertions(+) create mode 100755 install/deb.md create mode 100755 install/rpm8.md diff --git a/install/deb.md b/install/deb.md new file mode 100755 index 0000000..6d04cb0 --- /dev/null +++ b/install/deb.md @@ -0,0 +1 @@ +# Установка Сертифицированного КриптоПро CSP 5.0 на сервер под управлением DEB based дистрибутивов \ No newline at end of file diff --git a/install/rpm8.md b/install/rpm8.md new file mode 100755 index 0000000..3a7fa3e --- /dev/null +++ b/install/rpm8.md @@ -0,0 +1,109 @@ +# Установка Сертифицированного КриптоПро CSP 5.0 на сервер под управлением RHEL 8 based дистрибутивов + +> ВСЕ ДЕЙСТВИЯ НЕОБХОДИМО ВЫПОЛНЯТЬ ОТ **ROOT** + +> ПРЕДПОЛАГАЕМ, ЧТО ВСЕ ДЕЙСТВИЯ БУДУТ ВЫПОЛНЯТЬСЯ В ДОМАШНЕМ КАТАЛОГЕ ПОЛЬЗОВАТЕЛЯ **ROOT** + +0. Заходим под суперпльзователем и идём в домашнюю директорию + +```shell script +sudo -s +cd ~ +``` + +1. Установливаем необходимые пакеты + +```shell script +yum install -y php74-php-devel boost-devel gcc-c++ lsb libxml2-devel +``` + +2. Скачиваем архив с исходниками установленного PHP и распаковываем этот архив + +```shell script +if ! rpm -q php >/dev/null 2>&1; then wget https://www.php.net/distributions/php-$( php -v | grep -Eo '[0-9\.]{1,20}' | head -n 1 ).tar.gz -O php_src.tar.gz; fi +tar xvf php_src.tar.gz +mv ~/php-$( php -v | grep -Eo '[0-9\.]{1,20}' | head -n 1 ) ~/php_src +``` + +3. Скачиваем архив с КриптоПро CSP 5.0 R2 для Linux RPM x64 с официального сайта [https://www.cryptopro.ru/products/csp/downloads](https://www.cryptopro.ru/products/csp/downloads), загружаем архив на сервер, распаковываем и устанавливаем + минимальный набор пакетов КриптоПро CSP + +> Скачивать нужно именно R2. R3 не собирается и проблему пока не решили! + +```shell script +tar xvf linux-amd64.tgz +~/linux-amd64/install.sh +``` + +4. Устанавливаем пакет cprocsp-devel версии 5.0 + +```shell script +rpm -i ~/linux-amd64/lsb-cprocsp-devel*.rpm +``` + +5. Скачиваем архив с КриптоПро ЭЦП SDK, распаковываем этот архив и устанавливаем пакеты cprocsp-pki-cades, cprocsp-pki-phpcades + +```shell script +wget https://cryptopro.ru/sites/default/files/products/cades/current_release_2_0/cades-linux-amd64.tar.gz +mkdir -p ~/cades-linux-amd64 +tar xvf cades-linux-amd64.tar.gz -C ~/cades-linux-amd64 +rpm -i ~/cades-linux-amd64/cprocsp-pki-cades-64*.rpm ~/cades-linux-amd64/cprocsp-pki-phpcades-64*.rpm +``` + +6. Скачиваем патч для PHP 7 и применяем его + +```shell script +wget https://www.cryptopro.ru/sites/default/files/products/cades/php7_support.patch.zip +unzip -p ~/php7_support.patch.zip php7_support.patch > /opt/cprocsp/src/phpcades/php7_support.patch +cd /opt/cprocsp/src/phpcades/ +patch -p0 < ./php7_support.patch +``` + +7. В файле Makefile.unix указываем путь к папке с исходниками php и вносим другие правки + +```shell script +sed -i 's/PHPDIR=\/php/PHPDIR=\/root\/php_src/g' /opt/cprocsp/src/phpcades/Makefile.unix +sed -i 's/-fPIC -DPIC/-fPIC -DPIC -fpermissive/g' /opt/cprocsp/src/phpcades/Makefile.unix +``` + +8. Перейдём в директорию с исходниками PHP и выполним настройку конфигурации + +```shell script +cd ~/php_src +./configure --prefix=/opt/php +``` + +> Если будет ругаться, то нужно доустановить недостающие пакеты. Скорее всего не будет хватать sqlite-devel + +9. Перейдём в директорию с исходниками расширения и выполним команду сборки + +```shell script +cd /opt/cprocsp/src/phpcades +eval `/opt/cprocsp/src/doxygen/CSP/../setenv.sh --64`; make -f Makefile.unix +``` + +10. Выведем путь к расширениям PHP: + +```shell script +php -i | grep extension_dir +``` + +11. Создадим в директории с расширениями символическую ссылку на собранную библиотеку libphpcades.so + +```shell script +ln /opt/cprocsp/src/phpcades/libphpcades.so /usr/lib64/php/modules/libphpcades.so +``` + +12. Добавляем libphpcades в php.ini + +```shell script +echo "extension=libphpcades.so" > /etc/php.d/30-libphpcades.ini +``` + +13. Проверяем работу модуля + +```shell script +php -f /opt/cprocsp/src/phpcades/test_extension.php +``` + +> Если выдал `Cannot find object or property. (0x80092004)TEST FAIL` - значит модуль подключился. Теперь нужно настроить сертификаты