ПРОБЛЕМА:
Для доступа к эмулятору Песочница используется ГОСТ TLS, который не поддерживается Postman. Работа Postman возможна только, если вызовы будут осуществляется через внешнюю программу (например, прокси), которая самостоятельно обеспечивает ГОСТ mTLS.
РЕШЕНИЕ:
Решением данной проблемы может стать установление ГОСТ TLS соединений из Postman с серверами авторизации и ресурсов эмулятора ППУ Песочница с помощью программы stunnel.
Программа stunnel предназначена для шифрования трафика между произвольным приложением на клиентском компьютере, которое работает с некоторым приложением или службой на удаленном компьютере (сервере).
В рамках данной задачи предлагается применение stunnel-msspi, форка проекта stunnel с поддержкой криптографических алгоритмов ГОСТ при установке защищённых TLS-соединений через интерфейс msspi.
Для обеспечения работы ГОСТ-алгоритмов в полном объёме, в stunnel-msspi используется интерфейс msspi, который поддерживает ГОСТ-алгоритмы, используя установленный в систему криптопровайдер.
Чтобы начать использовать stunnel-msspi проделайте следующее:
Настройте рабочее место, выпустите и установите тестовый ГОСТ TLS сертификат, как описано в документе Как настроить АРМ пользователя УЦ и выпустить сертификаты для Среды открытых API
Тестовый УЦ ГОСТ: https://cpca.cryptopro.ru/ui/1/RegRequest.aspx?folderID=e625d77d-2d61-492c-863c-ac5c00e3269b
Шаблон сертификата: [TLS Client] BackEnd APP СПИУ/СППУ Песочница
Прикладной OID: 1.2.643.6.57.42.21.3.1.2
Скачайте файл архива stunnel-msspi, соответствующий вашей версии операционной системы: https://github.com/CryptoPro/stunnel-msspi/releases/latest
Распакуйте архив в отдельный каталог, например C:/stunnel
. Архив содержит единственный файл stunnel-msspi.exe
.
В каталоге, содержащем stunnel-msspi.exe
, с помощью любого текстового редактора создайте файл stunnel.conf
следующего содержания:
output = C:\stunnel\stunnel.log
socket = l:TCP_NODELAY=1
socket = r:TCP_NODELAY=1
debug = 7
[AS]
msspi = yes
client = yes
accept = 1443
connect = sb-as.openbankingrussia.ru:443
TIMEOUTconnect = 30
cert = 6ff5fab9ccbf83ecb138fbc181a028abd4eaa0ec
pin = 123456
verify = 2
[RS]
msspi = yes
client = yes
accept = 1444
connect = sb-rs.openbankingrussia.ru:443
TIMEOUTconnect = 30
cert = 6ff5fab9ccbf83ecb138fbc181a028abd4eaa0ec
pin = 123456
verify = 2
Описание параметров конфигурации: [1]
output - путь к лог-файлу
socket - опции для конфигурирования принимающих, локальных, удалённых сокетов.
debug - уровень протоколирования
client - работа в режиме клиента
accept - адрес и порт для приёма незашифрованного трафика
connect - адрес и порт сервера, на который передаётся зашифрованный трафик
cert - сертификат клиента (возможно указание пути к файлу сертификата в формате DER, либо SHA1 отпечатка сертификата [2] )
pin - пароль закрытого ключа сертификата
verify - возможные варианты проверки сертификата удалённого сервера
stunnel_msspi.exe stunnel.conf
stunnel-msspi настроен