Вот сделка:
- Наше клиентское программное обеспечение может подключаться только по протоколу http, оно не может использовать https.
- Однако требования безопасности диктуют сквозную безопасность, поэтому при обращении к серверу нам необходимо использовать https.
- Теперь я смог сделать это в тестовой среде, используяошеломитьсо следующей конфигурацией:
Файл stunnel.conf:
[mylocalproxy]
client = yes
accept = 127.0.0.1:3000
connect = the.real.server:443
- Учитывая конфигурацию Stunnel, приведенную выше, я могу настроить свой тестовый клиент на использование адреса конечной точки,
http://localhost:3000/endpoint/url/
и все будет работать отлично. - Но в производственной среде клиентская сторона не имеет прямого сетевого доступа к реальному серверу. Трафик HTTP/S со стороны клиента должен проходить через прокси-сервер.
- Мои вопросы:
- Можно ли настроить Stunnel для подключения через прокси-сервер?
- Если невозможно использовать Stunnel, есть ли другой способ сделать это?
решение1
Кажется, что это поддерживается, ностраница руководства, но язык написан так, что для его понимания вам в той или иной степени придется знать протоколы:
ПодПротоколмы можем увидеть следующее:
connect На основе RFC 2817 — Обновление до TLS в HTTP/1.1, раздел 5.2 — Запрос туннеля с помощью CONNECT. Этот протокол поддерживается только в режиме клиента.
Далее мы находим следующее:
protocolHost = ADDRESS адрес хоста для согласования протокола Для согласования протокола 'connect' protocolHost указывает HOST:PORT конечного сервера TLS, к которому должен подключиться прокси. Прокси-сервер, напрямую подключенный stunnel, должен быть указан с опцией connect.
Итак, мы можем собрать это воедино:
[mylocalproxy]
client = yes
accept = 127.0.0.1:3000
protocol = connect
connect = proxy.example.org:3128
protocolHost = the.real.server:443
Я не проверял, но, судя по формулировке в документации, это должно работать так, как и задумано.
решение2
Вы можете сделать это с помощью:
[SSL Proxy]
accept = 8443
connect = 8084
cert = certificate.pem
key = private_key.pem
Для разрешения клиентских подключений по протоколу https вам понадобится сертификат от центра сертификации.