crypto-pro-docs/install/rpm8.md

110 lines
4.5 KiB
Markdown
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Установка Сертифицированного КриптоПро 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` - значит модуль подключился. Теперь нужно настроить сертификаты