Показать/Скрыть содержание

    Пример развертывания КриптоПро SVS в *nix-системах

    В данном разделе приведен пример развертывания КриптоПро SVS в *nix-системах. Пример позволяет установить и настроить минимально необходимые для обеспечения работоспособности компоненты. Полная информация о настройке и возможностях КриптоПро SVS приведена в разделе "Настройка КриптоПро SVS".

    Используемые архивы и пакеты находятся на дистрибутивном диске КриптоПро SVS. КриптоПро SVS будет установлен в директорию /opt/cprosvs/vssrv.

    Примечание

    Команды bash, приведенные ниже, подразумевают выполнение из папки, куда было скопировано содержимое дистрибутивного диска с КриптоПро SVS и дополнительным ПО (например /var/temp).

    Установка КриптоПро CSP и дополнительных пакетов

    1. Распакуйте архив с дистрибутивом СКЗИ «КриптоПро CSP» в выбранную папку.

    tar -xf linux-amd64_deb.tgz -C /opt/tmp 
    

    2. Перейдите в папку, в которую был распакован архив на предыдущем шаге, и выполните скрипт для установки необходимых пакетов в соответствии с используемым исполнением.

    Пример с установкой cpnginx и cades:

    # Выдача прав на выполнение владельцу файла
    sudo chmod u+x install.sh
    # Установка
    sudo ./install.sh cprocsp-nginx cprocsp-pki-cades
    

    3. Активируйте лицензии для КриптоПро CSP, TSP- и OCSP-клиентов.

    Примечание

    Требуется лицензия на КриптоПро CSP для TLS-сервера.

    Дополнительная информация об установке и работе КриптоПро CSP и дополнительных пакетов содержится в эксплуатационной документации на используемую версию КриптоПро CSP.

    Установка CPShell

    Примечание

    Утилита CPShell для конфигурирования экземпляров сервисов необходима при использовании режима ЗПС в ОС СН Astra Linux SE Смоленск.

    1. Распакуйте архив с дистрибутивом cprotools в выбранную папку.

    2. Перейдите в папку, в которую был распакован архив на предыдущем шаге, и установите утилиту конфигурирования CPShell.

    sudo dpkg -i "cprotools-shell_*"
    

    Список модулей, загружаемых при помощи утилиты:

        "CryptoPro.VerificationService.PowerShell.dll",
        "CryptoPro.VerificationService.Frontend.PowerShell.dll"
    
    Примечание

    Добавление других модулей в число подключаемых разрешено только по результатам проведения дополнительных тематических исследований.

    Установка и импорт модулей PowerShell

    Установка PowerShell

    В случае если для конфигурирования сервисов будет использован PowerShell, скачайте и установите его дистрибутив, следуя инструкции по установке.

    Импорт модулей PowerShell

    Для автоматической загрузки модулей требуется создать PowerShell-профиль или добавить в существующий следующие данные:

    /opt/cprokey/powershell/Modules
    

    Каталог с PowerShell-профилем расположен по следующему адресу: /opt/microsoft/powershell/7/profile.ps1. В случае отсутствия файла профиля его необходимо создать самостоятельно.

    1. Создайте директорию:

    sudo touch /opt/microsoft/powershell/7/profile.ps1
    

    2. Создайте файл профиля со следующим содержимым (некоторые строки там уже могут содержаться, если были развернуты другие продукты):

    cat << EOF | sudo tee /opt/microsoft/powershell/7/profile.ps1
    #Путь к файлам модулей cprokey
    \$env:PSModulePath+=':/opt/cprokey/powershell/Modules'
    #Путь к файлам модулей cprosvs
    \$env:PSModulePath+=':/opt/cprosvs/powershell/Modules'
    #Переменные cprokey с данными УЗ служебного пользователя СУБД
    \$DssAdmin = "укажите УЗ СУБД PostgreSQL"
    \$DssAdminPwd = "укажите пароль УЗ"
    EOF
    

    3. Запустите PowerShell и получите список доступных модулей:

    sudo pwsh
    get-module -ListAvailable
    

    В списке должны присутствовать модули с названием CryptoPro для КриптоПро SVS.

    Настройка веб-сервера

    #Установка сертификата веб-сервера
    $ sudo -u nginx /opt/cprocsp/bin/amd64/certmgr -install -file <certificate.pfx> -pfx -pin <pfx_pin> -store umy
    # где <certificate.pfx> - имя PFX-файла с сертификатом, 
    # <pfx_pin> – пароль от PFX-файла. 
    
    # Установка корневого сертификата для сертификата веб-сервера 
    sudo -u nginx /opt/cprocsp/bin/amd64/certmgr -install -file <root.cer> -store uroot
    
    # Установка промежуточного сертификата для сертификата веб-сервера 
    sudo -u nginx /opt/cprocsp/bin/amd64/certmgr -install -file <ca.cer> -store uca
    
    
    # Получение серийного номера сертификата веб-сервера
    $ sudo -u nginx /opt/cprocsp/bin/amd64/certmgr -list -store umy
    
    # В конфигурационный файл Nginx(/etc/nginx/nginx.conf), в контекст server, отвечающий за взаимодействие 
    # по https, необходимо добавить серийный номер сертификата веб-сервера и ввести его в поле 
    # sspi_certificate: 
    sudo nano /etc/nginx/nginx.conf
    
    Пример:
    
        sspi on;
        sspi_certificate 0x12005F5F61797E3D56DBE2B60B0001005F5F61; # server certificate serial
        sspi_protocols TLSv1 TLSv1.1 TLSv1.2;
        sspi_verify_client on;
        sspi_client_certificate root; # Which store to search the root certificate in
    
    Перезапуск nginx
    $ sudo systemctl restart nginx
    

    Установка КриптоПро SVS

    #Установка КриптоПро SVS:
    1\. Перейдите в папку с дистрибутивом КриптоПро SVS и распакуйте архив с дистрибутивом.
    
    tar -xf cprosvs_*.tar.gz -C /opt/tmp/svs
    
    sudo dpkg -i cprosvs-base_XXX_amd64.deb
    sudo dpkg -i cprosvs-fe_XXX_amd64.deb
    
    
    #Создание учетной записи, под которой будет запускаться Служба
    sudo adduser --quiet --system --no-create-home <accountName>
    sudo usermod -a -G vssrv <accountName>
    

    Настройка КриптоПро SVS

    Настройка КриптоПро SVS:
    
    sudo pwsh
    #Импорт PowerShell-модулей
    #Модуль Сервиса Проверки Подписи
    Import-Module /opt/cprosvs/powershell/Modules/CryptoPro.VerificationService.PowerShell/CryptoPro.VerificationService.PowerShell.psd1
    #Модуль веб-интерфейса Сервиса Проверки Подписи
    Import-Module /opt/cprosvs/powershell/Modules/CryptoPro.VerificationService.Frontend.PowerShell/CryptoPro.VerificationService.Frontend.PowerShell.psd1
    
    
    #Создание экземпляра SVS
    Add-VsInstance -ApplicationName %instanceName% -ListenPort %port% -DisplayName %instanceName% -ServiceAccountName %accountName%
     #Пример:
     #Add-VsInstance -ApplicationName vs -ListenPort 8080 -DisplayName vs -ServiceAccountName user1
    
    #Ввод временной лицензии на SVS
    New-VsLicense 
    
    # Добавление плагинов преобразования документов
    Add-VsConverterPlugin -FileExtension pdf -Assembly CryptoPro.Plugins.DocumentConverter.PdfStub.dll
    Add-VsConverterPlugin -FileExtension doc -Assembly CryptoPro.Plugins.DocumentConverter.Word.dll
    Add-VsConverterPlugin -FileExtension dot -Assembly CryptoPro.Plugins.DocumentConverter.Word.dll
    Add-VsConverterPlugin -FileExtension docm -Assembly CryptoPro.Plugins.DocumentConverter.Word.dll
    Add-VsConverterPlugin -FileExtension dotm -Assembly CryptoPro.Plugins.DocumentConverter.Word.dll
    Add-VsConverterPlugin -FileExtension docx -Assembly CryptoPro.Plugins.DocumentConverter.Word.dll
    Add-VsConverterPlugin -FileExtension dotx -Assembly CryptoPro.Plugins.DocumentConverter.Word.dll
    Add-VsConverterPlugin -FileExtension FlatOpc -Assembly CryptoPro.Plugins.DocumentConverter.Word.dll
    Add-VsConverterPlugin -FileExtension FlatOpcMacroEnabled -Assembly CryptoPro.Plugins.DocumentConverter.Word.dll
    Add-VsConverterPlugin -FileExtension FlatOpcTemplate -Assembly CryptoPro.Plugins.DocumentConverter.Word.dll
    Add-VsConverterPlugin -FileExtension FlatOpcTemplateMacroEnabled -Assembly CryptoPro.Plugins.DocumentConverter.Word.dll
    Add-VsConverterPlugin -FileExtension xml -Assembly CryptoPro.Plugins.DocumentConverter.Xml.dll -Parameters @{ "encoding"="UTF-8" }
    Add-VsConverterPlugin -FileExtension odt -Assembly CryptoPro.Plugins.DocumentConverter.Word.dll
    Add-VsConverterPlugin -FileExtension ott -Assembly CryptoPro.Plugins.DocumentConverter.Word.dll
    Add-VsConverterPlugin -FileExtension ooxml -Assembly CryptoPro.Plugins.DocumentConverter.Word.dll
    Add-VsConverterPlugin -FileExtension WordML -Assembly CryptoPro.Plugins.DocumentConverter.Word.dll
    Add-VsConverterPlugin -FileExtension rtf -Assembly CryptoPro.Plugins.DocumentConverter.Word.dll
    Add-VsConverterPlugin -FileExtension html -Assembly CryptoPro.Plugins.DocumentConverter.Word.dll
    Add-VsConverterPlugin -FileExtension xhtml -Assembly CryptoPro.Plugins.DocumentConverter.Word.dll
    Add-VsConverterPlugin -FileExtension mhtml -Assembly CryptoPro.Plugins.DocumentConverter.Word.dll
    Add-VsConverterPlugin -FileExtension txt -Assembly CryptoPro.Plugins.DocumentConverter.Word.dll
    
    
    #Выйти из PS
    exit
    
    
    
    # Донастройка Nginx:
    
    # В конфигурационный файл Nginx(/etc/nginx/nginx.conf), в контекст server секцию, отвечающую за взаимодействие на 
    # 443 порту (https), необходимо добавить:
    sudo nano /etc/nginx/nginx.conf
    include /etc/opt/cprosvs/vssrv/%instanceName%/nginx.conf
    
    Пример конфигурации:
    
    worker_processes 1;
    error_log /var/log/nginx/error.log;
    pid /var/run/nginx.pid;
    worker_rlimit_nofile 8192;
    events {
        worker_connections 4096;
    }
    http {
        log_format main '$remote_addr - $remote_user [$time_local] $status '
            '"$request" $body_bytes_sent "$http_referer" '
            '"$http_user_agent" "$http_x_forwarded_for"';
        access_log /var/log/nginx/access.log main;
        server {
            listen 443;
            include mime.types;
            server_name astrarakort;
            include /etc/opt/cprosvs/vssrv/svs_appname/nginx.conf; 
          # include /etc/opt/cprosvs/vsfe/fe_appname/nginx.conf;
            sspi on;
            sspi_certificate 0x01CCA90B0169AE098C4F5AEEB275FA6CAB; # GOST Serial, необходимо ставить первым в список
          # sspi_certificate 0x00E3CD25AA5310D07F; # RSA cert serial (опционально, необходимо при использовании GOST+RSA На одном порту)
            sspi_protocols TLSv1.2;
        }
    }
    
    
    
    #Установка сертификатов, используемых при построении и проверке цепочки сертификатов подписи:
    
    # Установка корневых сертификатов в хранилище mroot:
    sudo /opt/cprocsp/bin/amd64/certmgr -install -store mroot -file /path_to/root.cer
    # В хранилище m<svs_appname>-root:
    sudo /opt/cprocsp/bin/amd64/certmgr -install -store mverify-root -file /path_to/root.cer
    
    # Установка промежуточных сертификатов в хранилище m<svs_appname>-ca:
    sudo /opt/cprocsp/bin/amd64/certmgr -install -store mverify-ca -file /path_to/ca.cer
    
    # Установка CRL в хранилище m<svs_appname>-ca:
    sudo /opt/cprocsp/bin/amd64/certmgr -install -crl -store mverify-ca -file /path_to/ca.crl
    
    
    
    # Перезапуск nginx
    sudo systemctl restart nginx.service    
    
    # Проверка работоспособности nginx
    sudo systemctl status nginx.service 
    
    #Перезапуск демонов  
    sudo systemctl daemon-reload
    
    #Запуск сервиса SVS
    sudo systemctl start cprosvs-vssrv-%intanceName%.service
    
    #Проверка статуса службы SVS
    sudo systemctl status cprosvs-vssrv-%intanceName%.service
    
    #Просмотр журнала работы службы
    sudo tail -f /var/log/syslog
    
    #Настройка Веб-интерфейса КриптоПро SVS:
    
    #Установка Веб-интерфейса КриптоПро SVS (если не была выполнена ранее)
    sudo dpkg -i cprosvs-fe_1.0.318-prerelease-1_amd64.deb
    
    sudo pwsh
    Import-Module /opt/cprosvs/powershell/Modules/CryptoPro.VerificationService.Frontend.PowerShell/CryptoPro.VerificationService.Frontend.PowerShell.psd1
    
    #Создание экземпляра Веб-интерфейса КриптоПро SVS:
    Add-VsFeInstance -DisplayName %instanceName% -ApplicationName %instanceName%
       # Пример: Add-VsFeInstance -DisplayName verify -ApplicationName verify
    
    #Настройка экземпляра Веб-интерфейса КриптоПро SVS:
    #VSAppName - имя веб-приложения Сервиса Проверки Подписи (не Веб-Интерфейса Сервиса Проверки Подписи)
    Set-VsFeProperties -DisplayName {{VsFeAppName}} -BaseUrl "https://{{hostName}}/{{VsAppName}}" 
       # Пример: Set-VsFeProperties -DisplayName verify -BaseUrl "https://astrarakort/vs"
    
    # Настройка allowedCorsOrigins (если компоненты развернуты на разных серверах)
    # Список допустимых источников запросов (адресов, конечных точек и т.д.) к API SVS для протокола CORS (возможно указание нескольких имен через запятую).
    # Например, имя машины, на которой развернут Веб-интерфейс SVS (Переменная server_name из контекста server, соответствующего Веб-интерфейсу SVS, файла конфигурации /etc/nginx/nginx.conf)
      Set-VsProperties -AllowedCorsOrigins https://<server_name> 
    
    
    
    # Донастройка nginx
    #По аналогии с предыдущим пунктом необходимо добавить в конфигурацию nginx информацию об экземпляре Веб-Сервиса SVS:
    
    # В конфигурационный файл Nginx(/etc/nginx/nginx.conf), в контекст server секцию, отвечающий за взаимодействие на 
    # 443 порту (https), необходимо добавить:
    
    # ВНИМАНИЕ! Строчки должны находиться в контексте server с настроенным сертификатом проверки подлинности сервера (TLS).
    sudo nano /etc/nginx/nginx.conf
    include /etc/opt/cprosvs/vssrv/svs_appname/nginx.conf; 
    include /etc/opt/cprosvs/vsfe/fe_appname/nginx.conf;
    
    # Активация и запуск Сервиса Проверки:
    sudo systemctl enable cprosvs-vssrv-svs_appname.service
    sudo systemctl start cprosvs-vssrv-svs_appname.service
    
    # Перезапуск службы КриптоПро SVS
    sudo systemctl restart cprosvs-vssrv-<instanceName>.service
    # ИЛИ
    Restart-VsInstance -DisplayName
    
    # Перезапуск nginx
    sudo systemctl restart nginx.service    
    
    # Проверка статуса службы nginx
    sudo systemctl status nginx.service 
    
    В начало © ООО "КРИПТО-ПРО", 2000–2025