Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline Ragnarek  
#1 Оставлено : 29 октября 2018 г. 11:17:51(UTC)
Ragnarek

Статус: Участник

Группы: Участники
Зарегистрирован: 14.09.2017(UTC)
Сообщений: 12
Российская Федерация
Откуда: Барнаул

Поблагодарили: 2 раз в 1 постах
Небольшой мануал для страдальцев типа меня, которым необходимо использовать КриптоПро в php. Конкретно в данном примере разобран пример установки пакета на 64 разрядную версию ubuntu 18.04 и версию php 7.2. Для 32 разрядности необходимо использовать другие пакеты. Для версии php 5.* пункты 3-7 не нужны. Библиотека изначально заточена под 5 версию.

  1. Скачиваем сертифицированную версию КриптоПро CSP 4 для Linux.
    В данном случае это пакет КриптоПро CSP 4.0 для Linux (x64, deb) устанавливается легко и просто
    Код:
    ./install.sh

  2. Скачиваем пакет КриптоПро ЭЦП SDK. В данном случае Linux 64 бита.
    Распаковываем и устанавливаем все файлы командой
    Код:
    alien -kci *

    указание ключей важно, без них работать не будет.
  3. Скачиваем исходники php. Версия та, которую вы собираетесь использовать. В данном случае 7.2.
    Проверить версию можно командой
    Код:
    php -v
    

    если нужно проверить версию php-fpm, то через phpinfo()
  4. Распаковываем исходники php, заходим в папку и выполняем команду
    Код:
    ./configure

    Может понадобиться пакет libxml2, необходимо будет установить.
    По мануалу устанавливаем пакеты libboost-all-dev, php7.2-dev
    Код:
    apt install libboost-all-dev php7.2-dev
    

  5. Скачиваем патч для php7 из этой темы и распаковываем его в папку /opt/cprocsp/src/phpcades.
  6. Выполняем команду
    Код:
    patch <  php7_support.patch
    

    На все вопросы жмем Enter до победного конца
  7. Правим Makefile, указывая путь до исходников php в параметре PHPDIR
    Выполняем команду
    Код:
    eval `/opt/cprocsp/src/doxygen/CSP/../setenv.sh --64`; make -f Makefile.unix
    

    Получаем заветный libphpcades.so
    При возникновении ошибки
    Код:
    /usr/bin/ld: cannot find -lcppcades 
    
    делаем симлинк
    Код:
    ln -s /opt/cprocsp/lib/amd64/libcppcades.so.2 /opt/cprocsp/lib/amd64/libcppcades.so
    

    И повторяем операцию

  8. Смотрим папку расширений для php
    Код:
    php -i | grep extension_dir
    

    в данном случае ответ был такой
    Код:
    extension_dir => /usr/lib/php/20170718 => /usr/lib/php/20170718
    

  9. Копируем свежесозданный файл библиотеки libphpcades.so в эту папку
    Создаем файл конфигурации для библиотеки
    Код:
    touch /etc/php/7.2/mods-available/libphpcades.ini
    

    Правим его, добавляя строку
    Код:
    extension=libphpcades.so
    

  10. Делаем симлинк на этот файл в папках
    /etc/php/7.2/fpm/conf.d и /etc/php/7.2/cli/conf.d
    Код:
    cd /etc/php/7.2/fpm/conf.d && ln -s /etc/php/7.2/mods-available/libphpcades.ini 
    cd /etc/php/7.2/cli/conf.d && ln -s /etc/php/7.2/mods-available/libphpcades.ini 
    

  11. Перезапускаем php-fpm
    Код:
    systemctl restart php7.2-fpm.service
    

  12. Тестим и радуемся жизни(нет)


Желательно установить сертификаты Головного УЦ и УЦ Минкомсвязи, для более быстрой работы.
Головной УЦ (ГОСТ 2001)
УЦ Минкомсвязи (ГОСТ 2012)
Код:
/opt/cprocsp/bin/amd64/certmgr -inst -store mroot -file *cert_file*

За терпение и помощь в установке выражаю огромную благодарность Андрею Писареву

Отредактировано пользователем 29 октября 2018 г. 11:43:28(UTC)  | Причина: Не указана

thanks 2 пользователей поблагодарили Ragnarek за этот пост.
eisy оставлено 13.07.2020(UTC), Max BArev оставлено 04.12.2020(UTC)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.