ELMA365 On-Premises > Дополнительно / Установка туннеля Контур через stunnel-msspi 

Установка туннеля Контур через stunnel-msspi

Чтобы запустить туннель Контур для работы модуля по подписанию сертификатов, необходима Виртуальная Машина или Сервер на ОС Ubuntu 18.04-22.04.

  1. Установите криптопровайдер и все сопутствующие утилиты. Загрузите и установите дистрибутив Cryptopro с официального сайта.

tar -zxvf linux-amd64_deb.tgz
cd linux-amd64_deb/
./install.sh

  1. Загрузите все корневые сертификаты с официального сайта Контур УЦ в удобную для вас дирректорию.
  2. Установите сертификаты в хранилище uROOT:

/opt/cprocsp/bin/amd64/certmgr -inst -file <путь до сертификата> -store uROOT

  1. Сгенерируйте запрос на сертификат:

/opt/cprocsp/bin/amd64/cryptcp -creatrqst <имя файла запроса.csr> -provtype 80 -cont “\\\\.\HDIMAGE\<имя контейнера, задаётся произвольно>” -certusage "1.3.6.1.5.5.7.3.2" -dn "E=elma@elma-bpm.ru, C=RU, S=18 Удмуртская Республика, L=Ижевск, O=Общество с ограниченной ответственностью Элма, OID.1.2.643.3.131.1.1=001831197044, OID.1.2.643.100.1=1191832028332, STREET=420033 г. Ижевск ул. 30 Лет победы д.2 оф. 404, CN=elma-bpm.ru" -ex -k

Значения команд в запросе:

  • E — электронный адрес организации;
  • C — страна;
  • S — регион;
  • L — город;
  • O — полное наименование организации;
  • OID.1.2.643.3.131.1.1 — ИНН организации;
  • OID.1.2.643.100.1 — ОГРН организации;
  • STREET — юридический адрес организации;
  • CN — краткое наименование организации.
  1. Отправьте получившийся файл запроса на электронную почту Контур УЦ: cabuc-help@skbkontur.ru.
  2. Установите полученный от Контур УЦ сертификат в контейнер закрытого ключа, созданный на предыдущем шаге:

/opt/cprocsp/bin/amd64/csptestf -keys -cont '\\.\HDIMAGE\<имя контейнера, указанное ранее>' -keyt exchange -impcert /home/malov/<имя сертификата.cer>

  1. Выполните автоустановку сертификата в нужное хранилище:

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

  1. Загрузите нужную версию stunnel-msspi и переместите в директорию с установленным Cryptopro.

wget https://github.com/CryptoPro/stunnel-msspi/releases/download/stunnel-5.65-cpro-0.55/stunnel-5.65-cpro-0.55-amd64-ubuntu.tar.gz
tar -zxvf stunnel-5.65-cpro-0.55-amd64-ubuntu.tar.gz
mv stunnel-msspi /opt/cprocsp/bin/amd64/

  1. Создайте директорию конфигурации stunnel:

mkdir -p /etc/stunnel/

  1. Создайте файл конфигурации stunnel.conf:

mcedit /etc/stunnel/stunnel.conf
 
- - -
output = /var/log/stun.log
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
debug = 7
[https]
connect = cloud.kontur-ca.ru:443
client = yes
accept = <ip адрес туннеля>:8200
cert = <отпечаток сертификата>
verify = 2
- - -

Отпечаток сертификата можно посмотреть в графе SHA1 fingerprint или SHA1 Thumbprint после ввода команды:

/opt/cprocsp/bin/amd64/certmgr -list -store umy

  1. Запустите туннель:

/opt/cprocsp/bin/amd64/stunnel-msspi /etc/stunnel/stunnel.conf

  1. Установите nginx и добавьте файл конфигурации в дирректорию /etc/nginx/conf.d/crypto.conf:

apt install nginx
mcedit /etc/nginx/conf.d/crypto.conf
 
- - -
server {
    listen     <ip адрес туннеля>:443;
    access_log /var/log/nginx/crypto.log;
    error_log /var/log/nginx/crypto.log;
 
location / {
    proxy_pass http://<ip адрес туннеля>:8200;
    proxy_set_header Host cloud.kontur-ca.ru;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Real-IP $remote_addr;
    }
}
- - -
 
systemctl restart nginx

  1. Проверьте работу туннеля:

netstat -tupln

В адресе Host должны присутствовать порты 8200 и 443:

curl http://192.168.1.49:443/v3/Hello

В ответе вы получите фразу: «Hello, this is Crypt front API v3».

Если в ответе пришла ошибка, обратитесь в поддержку Контур УЦ для добавления внешнего адреса в белый лист IP. Если после этого вы получили повторную ошибку, отправьте в поддержку список корневых сертификатов для сверки.

/opt/cprocsp/bin/amd64/certmgr -list -store uroot