Добрый день!
Для задач тестирования MTLS ГОСТ решил задействовать stunnel, чтобы прозрачно работать из утилит типа Postman, SOAPUI и т.д.. В качестве серверной части выступает кластер Ngate, stunnel в качестве клиента.
Пробовал тестировать с двух ОС. Из под Ubuntu задействовал stunnel, который идет в поставке к 4-й версии CrypotCSP, там никаких проблем, все поднимается, работает, и stunnel и curl отлично работают. А вот в Windows столкнулся с проблемами. Изначально попробовал версию с гитхаба, но столкнулся с ошибкой. Сервис запускается, но попытка коннекта падает с ошибкой:
2021.04.26 12:36:24 LOG6[3]: msspi: try open cert = "Cert.cer" as file
2021.04.26 12:36:24 LOG6[2]: msspi: try open cert = "Cert.cer" as file
2021.04.26 12:36:24 LOG3[2]: msspi: add_mycert failed: "bad file format" (cert = "Cert.cer")
2021.04.26 12:36:24 LOG3[3]: msspi: add_mycert failed: "bad file format" (cert = "Cert.cer")
2021.04.26 12:36:24 LOG5[2]: Connection reset: 0 byte(s) sent to TLS, 0 byte(s) sent to socket
2021.04.26 12:36:24 LOG5[3]: Connection reset: 0 byte(s) sent to TLS, 0 byte(s) sent to socket
2021.04.26 12:36:24 LOG7[3]: Remote descriptor (FD=840) closed
2021.04.26 12:36:24 LOG7[2]: Remote descriptor (FD=724) closed
2021.04.26 12:36:24 LOG7[3]: Local descriptor (FD=780) closed
2021.04.26 12:36:24 LOG7[3]: Service [https] finished (1 left)
2021.04.26 12:36:24 LOG7[2]: Local descriptor (FD=748) closed
2021.04.26 12:36:24 LOG7[2]: Service [https] finished (0 left)
Тогда решил попробовать другие версии, stunnel_msspi_cli.exe, stunnel.win32.exe, stunnel.x64.exe, все три версии позволяют успешно установить соединение. Соответственно, версия с плохим файлом сертификата не актуальна.
Вот, к примеру лог консольной версии stunnel_msspi_cli.exe:
2021.04.26 12:59:23 LOG7[0]: Option TCP_NODELAY set on remote socket
2021.04.26 12:59:23 LOG7[1]: Setting remote socket options (FD=552)
2021.04.26 12:59:23 LOG7[0]: Remote descriptor (FD=520) initialized
2021.04.26 12:59:23 LOG7[1]: Option TCP_NODELAY set on remote socket
2021.04.26 12:59:23 LOG7[1]: Remote descriptor (FD=552) initialized
2021.04.26 12:59:23 LOG6[1]: msspi: try open cert = "Cert.cer" as file
2021.04.26 12:59:23 LOG6[0]: msspi: try open cert = "Cert.cer" as file
2021.04.26 12:59:23 LOG6[0]: Peer certificate required
2021.04.26 12:59:23 LOG6[1]: Peer certificate required
2021.04.26 12:59:23 LOG6[1]: msspi: TLSv1.2 connected (FF85)
2021.04.26 12:59:23 LOG6[0]: msspi: TLSv1.2 connected (FF85)
При этом, stunnel_msspi_cli.exe нельзя установить в качестве службы, stunnel.x64.exe ставится в качестве службы, но не стартует, хотя из консоли запускается. stunnel.win32.exe получилось установить в качестве службы и работает, но при попытке остановить службу, сообщает, что служба остановлена, хотя процесс продолжает держать порт и соединение.
Хотелось бы разобраться, почему не хочет работать с сертификатом stunnel-msspi.exe.
Конфиг:
output=d:\Stunnel\log\stunnel_cli2.log
debug = 7
[https]
msspi = yes
client = yes
accept = 1543
connect = site.ru:443
cert = Cert.cer
verify = 2
Версии
CryptoSCP: 4.0.9963
Stunnel: 5.56
Отредактировано пользователем 26 апреля 2021 г. 13:17:15(UTC)
| Причина: Не указана