Назад | Перейти на главную страницу

Прокси-сервер SOAP

Мне нужно связаться с сервером httpS SOAP через порт, отличный от стандартного 443. Клиентское приложение не работает (из-за ограничений) с портами, отличными от стандартных для HTTP и HTTPS.

Как я могу настроить свой Linux-сервер, на котором запущен Apache, для туннелирования всех этих запросов, поступающих на soap.domain.com, на https://soapserver.otherdomain.com:1234/Service.asmx ?

Я бы использовал обратный прокси, например haproxy или nginx с участием proxy_pass вариант.

Оба позволят вам прокси-запросы к вышестоящим серверам, и оба разрешат HTTPS для soap.domain.com и разрешат проксирование на зашифрованный восходящий HTTPS-сервер в вашем случае: https://soapserver.otherdomain.com:1234/Service.asmx

По моему опыту, nginx несколько проще установить и настроить.

Соответствующая конфигурация nginx может выглядеть следующим образом:

listen       443 ssl;
server_name  soap.domain.com;
ssl_certificate     soap.domain.com.crt;
ssl_certificate_key soap.domain.com.key;
ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers         HIGH:!aNULL:!MD5;

location / {
    proxy_pass https://soapserver.otherdomain.com:1234;                     
}

И да, вы можете использовать самоподписанный сертификат

Обратный прокси вам поможет.

Вы можете использовать apache mod_proxy, чтобы помочь вам. Используя mod_proxy, apache получит запрос на стандартные порты HTTP / HTTPS, а затем внутренне перенаправит его на сервер SOAP.

http://httpd.apache.org/docs/2.0/mod/mod_proxy.html

Прочтите об обратном прокси. Это поможет вам лучше понять.

Я не понимаю, где это нужно делать - на клиенте SOAP? На сервере SOAP? где-то между? В любом случае подход один и тот же - есть несколько способов сделать это.

  • Вы можете использовать iptables для перезаписи адресов пакетов.
  • Запустите демон пакетного прокси (например, netcat) для прослушивания порта 443 и подключения к порту XXX.
  • Настройте [x] inetd на прослушивание порта 443 и запустите общий клиент сокета (например, снова netcat), подключающийся к порту XXX.

Первый метод позволит вам сохранить адрес клиента, видимый сервером.