Чтобы запустить туннель Контур для работы модуля по подписанию сертификатов, необходима Виртуальная Машина или Сервер на ОС Ubuntu 18.04-22.04.
- Установите криптопровайдер и все сопутствующие утилиты. Загрузите и установите дистрибутив Cryptopro с официального сайта.
tar -zxvf linux-amd64_deb.tgz
cd linux-amd64_deb/
./install.sh
- Загрузите все корневые сертификаты с официального сайта Контур УЦ в удобную для вас дирректорию.
- Установите сертификаты в хранилище uROOT:
/opt/cprocsp/bin/amd64/certmgr -inst -file <путь до сертификата> -store uROOT
- Сгенерируйте запрос на сертификат:
/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 — краткое наименование организации.
- Отправьте получившийся файл запроса на электронную почту Контур УЦ: cabuc-help@skbkontur.ru.
- Установите полученный от Контур УЦ сертификат в контейнер закрытого ключа, созданный на предыдущем шаге:
/opt/cprocsp/bin/amd64/csptestf -keys -cont '\\.\HDIMAGE\<имя контейнера, указанное ранее>' -keyt exchange -impcert /home/malov/<имя сертификата.cer>
- Выполните автоустановку сертификата в нужное хранилище:
/opt/cprocsp/bin/amd64/csptestf -absorb -certs -autoprov
- Загрузите нужную версию 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/
- Создайте директорию конфигурации stunnel:
mkdir -p /etc/stunnel/
- Создайте файл конфигурации 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
- Запустите туннель:
/opt/cprocsp/bin/amd64/stunnel-msspi /etc/stunnel/stunnel.conf
- Установите 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
- Проверьте работу туннеля:
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