Настройка КриптоПро HSM Client на FreeBSD 11
Опубликовано Александр Лавник on 2019-03-29 18:20

Конфигурация:

FreeBSD 11 x64

КриптоПро CSP 4.0 R4 (4.0.9963)

КриптоПро HSM 2.0

ключ доступа к КриптоПро HSM на жестком диске


Последовательность необходимых действий:

  1. Установить пакеты gcc и pcsc-lite:

    # pkg install gcc pcsc-lite

  2. Скачать архив с КриптоПро CSP 4.0 R4, распаковать этот архив:

    tar xvf freebsd-amd64.tgz

    и установить минимальный набор пакетов КриптоПро CSP:

    cd freebsd-amd64
    # ./install.sh kc2

  3. Установить пакет cpro-stunnel из состава дистрибутива КриптоПро CSP 4.0 R4:

    # pkg install cpro-stunnel-64-4.0.9963_0.tbz

  4. Добавить криптопровайдеры КриптоПро HSM в конфигурацию КриптоПро CSP:

    cd /opt/cprocsp/sbin/amd64/

    ./cpconfig -ini '\cryptography\Defaults\Provider\Crypto-Pro HSM CSP' -add string 'Image Path' /opt/cprocsp/lib/amd64/libcspr.so
    ./cpconfig -ini '\cryptography\Defaults\Provider\Crypto-Pro HSM CSP' -add string 'Function Table Name' CPSRV_GetFunctionTable
    ./cpconfig -ini '\cryptography\Defaults\Provider\Crypto-Pro HSM CSP' -add long Type 75
    ./cpconfig -ini '\cryptography\Defaults\Provider\Crypto-Pro HSM CSP' -add string Channel .clientk2

    ./cpconfig -ini '\cryptography\Defaults\Provider\Crypto-Pro GOST R 34.10-2012 HSM CSP' -add string 'Image Path' /opt/cprocsp/lib/amd64/libcspr.so
    ./cpconfig -ini '\cryptography\Defaults\Provider\Crypto-Pro GOST R 34.10-2012 HSM CSP' -add string 'Function Table Name' CPSRV_GetFunctionTable
    ./cpconfig -ini '\cryptography\Defaults\Provider\Crypto-Pro GOST R 34.10-2012 HSM CSP' -add long Type 80
    ./cpconfig -ini '\cryptography\Defaults\Provider\Crypto-Pro GOST R 34.10-2012 HSM CSP' -add string Channel .clientk2

    ./cpconfig -ini '\cryptography\Defaults\Provider\Crypto-Pro GOST R 34.10-2012 Strong HSM CSP' -add string 'Image Path' /opt/cprocsp/lib/amd64/libcspr.so
    ./cpconfig -ini '\cryptography\Defaults\Provider\Crypto-Pro GOST R 34.10-2012 Strong HSM CSP' -add string 'Function Table Name' CPSRV_GetFunctionTable
    ./cpconfig -ini '\cryptography\Defaults\Provider\Crypto-Pro GOST R 34.10-2012 Strong HSM CSP' -add long Type 81
    ./cpconfig -ini '\cryptography\Defaults\Provider\Crypto-Pro GOST R 34.10-2012 Strong HSM CSP' -add string Channel .clientk2

  5. Перезапустить службу cprocsp:

    # /etc/rc.d/cprocsp restart

  6. Экспортировать в файл корневой сертификат КриптоПро HSM из ключевого контейнера ключа доступа:

    # /opt/cprocsp/bin/amd64/csptestf -keys -cont cont_name -saveext /root/hsmroot.p7b

    Имя ключевого контейнера можно вывести командой:

    # /opt/cprocsp/bin/amd64/csptest -keys -enum -verifyc

  7. Установить корневой сертификат КриптоПро HSM:

    # /opt/cprocsp/bin/amd64/certmgr -inst -store root -file /root/hsmroot.p7b

  8. Установить сертификат ключа доступа с привязкой к ключевому контейнеру:

    # /opt/cprocsp/bin/amd64/csptestf -absorb -certs -autoprov

  9. Экспортировать сертификат ключа доступа в файл:

    # /opt/cprocsp/bin/amd64/certmgr -export -dest /root/user.cer

  10. Создать файл /etc/opt/cprocsp/stunnel/stunnel.conf со следующим содержимым:

    pid = /var/opt/cprocsp/tmp/stunnel-k2.pid
    output = /var/log/stunnel-k2.log
    socket = r:TCP_NODELAY=1
    debug = 0
    max_clients =25
    for_hsm = yes

    [clientk2]
    client = yes
    connect = 192.168.0.1:1501
    accept = /var/opt/cprocsp/tmp/.clientk2
    cert = /root/user.cer
    pincode =12345678

    В данном случае IP-адрес Криптопро HSM 192.168.0.1, пин-код ключевого контейнера 12345678.

  11. Создать символическую ссылку и запустить процесс stunnel_fork:

    # ln -s /lib/libutil.so.9 /lib/libutil.so.8

    # /opt/cprocsp/sbin/amd64/stunnel_fork

  12. Проверить доступность криптопровайдеров КриптоПро HSM:

    /opt/cprocsp/bin/amd64/csptest -enum -provider "Crypto-Pro HSM CSP" -provtype 75 -info
    /opt/cprocsp/bin/amd64/csptest -enum -provider "Crypto-Pro GOST R 34.10-2012 HSM CSP" -provtype 80 -info
    /opt/cprocsp/bin/amd64/csptest -enum -provider "Crypto-Pro GOST R 34.10-2012 Strong HSM CSP" -provtype 81 -info

(6 плюсик(ов))
Класс!
Не очень :(