Пример создания ssl-туннеля при помощи библиотеки stunnel.
Библиотека stunnel, которая поставляется вместе с примером, является модификацией
http://stunnel.org/ с добавленной поддержкой КриптоПро CSP.
Stunnel может работать навстречу обычному TLS-серверу, или другому экземпляру
stunnel, работающему в серверном режиме. Например, в качестве сервера может
выступать Microsoft ISA, Microsoft IIS, Apache + TrustedTLS, Apache с openssl на
ГОСТе или ещё что-нибудь.
Пример осуществляет запуск ssl-туннеля и может запустить примитивный браузер внутри
туннеля. Для работы браузера внутри туннеля необходимо настроить прокси на
localhost:<№ порта>. Туннель строится от localhost:<№ порта> до TMG, адрес которого
нужно внести в поле “Server URL”. Может быть установлено соединение с односторонней
или двухсторонней аутентификацией. Для двухсторонней аутентификации нужно выбрать
клиентский сертификат.
Браузер можно доработать или заменить на нужное Вам приложение. Также можно
модифицировать пример таким образом, чтобы он соединялся не с TMG, а непосредственно
с веб-сервером, к которому нужно получить доступ(например, если Вы строите туннель от
localhost:4444 до server, то при наборе в браузере адреса localhost:4444 вы будете
через туннель работать с server). В этом случае или в случае, если вашему приложению
можно будет задать адрес подключения(как rdp-клиенту), не нужно будет настраивать
прокси – надо будет только задать приложению адрес подключения, совпадающий с точкой
входа в туннель.
То, как осуществляется запуск туннеля, можно посмотреть в файле
iStunnelViewController.mm. Ключевые моменты снабжены комментариями.
Сборка примера осуществляется в соответствии с инструкцией по сборке примеров из
состава фреймворка.
Единственное дополнительное действие, которое потребуется -- свойствах проекта в
«Library Search Paths» исправить путь к папке, в которой лежит библиотека libcspstunnel.
Пример предоставляется бесплатно.
Авторские права на пример принадлежат ООО КРИПТО-ПРО.