mirror of
https://github.com/crypto-pro-web/crypto-pro-docs.git
synced 2025-01-18 17:55:51 +03:00
110 lines
4.5 KiB
Markdown
Executable File
110 lines
4.5 KiB
Markdown
Executable File
# Установка Сертифицированного КриптоПро 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` - значит модуль подключился. Теперь нужно настроить сертификаты
|