﻿# Установка туннеля Контур через stunnel-msspi 

> [HTML Version](install-kontur-tunnel.html)

Чтобы запустить туннель Контур для работы модуля по подписанию сертификатов, необходима Виртуальная Машина или Сервер на ОС Ubuntu 18.04-22.04.

1. Установите криптопровайдер и все сопутствующие утилиты. Загрузите и установите дистрибутив Cryptopro с [официального сайта](https://www.cryptopro.ru/).

````
tar -zxvf linux-amd64\_deb.tgz  
cd linux-amd64\_deb/  
./install.sh

2. ````
Загрузите все корневые сертификаты с [официального сайта Контур УЦ](https://ca.kontur.ru/about/certificates) в удобную для вас дирректорию.

3. Установите сертификаты в хранилище **uROOT**:

````
/opt/cprocsp/bin/amd64/certmgr -inst -file <путь до сертификата> -store uROOT

4. ````
Сгенерируйте запрос на сертификат:

````
/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** — краткое наименование организации.

5. Отправьте получившийся файл запроса на электронную почту Контур УЦ: **cabuc-help@skbkontur.ru**.

6. Установите полученный от Контур УЦ сертификат в контейнер закрытого ключа, созданный на предыдущем шаге:

````
/opt/cprocsp/bin/amd64/csptestf -keys -cont '\\\\.\\HDIMAGE\\<имя контейнера, указанное ранее>' -keyt exchange -impcert /home/malov/<имя сертификата.cer>

7. ````
Выполните автоустановку сертификата в нужное хранилище:

````
/opt/cprocsp/bin/amd64/csptestf -absorb -certs -autoprov

8. ````
Загрузите нужную версию 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/

9. ````
Создайте директорию конфигурации **stunnel**:

````
mkdir -p /etc/stunnel/

10. ````
Создайте файл конфигурации **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

11. ````
Запустите туннель:

````
/opt/cprocsp/bin/amd64/stunnel-msspi /etc/stunnel/stunnel.conf

12. ````
Установите **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

13. ````
Проверьте работу туннеля:

````
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
````