I need to communicate with a httpS SOAP server on a different port than the standard 443. The client app doesn't work (because of restrictions) with different ports than the standard ones for HTTP and HTTPS
How can I setup my linux server running Apache to tunnel all these requests coming in at soap.domain.com to https://soapserver.otherdomain.com:1234/Service.asmx ?
A reverse proxy will help you.
You can use apache mod_proxy to help you. By using mod_proxy apache will receive the request on the standard HTTP/HTTPS ports and then internally redirect it to the SOAP server.
http://httpd.apache.org/docs/2.0/mod/mod_proxy.html
Read up on reverse proxy. It will help you understand better.
I'd use a reverse proxy such as haproxy or nginx with
proxy_pass
option.Both will allow you to proxy requests to upstream servers and both will allow HTTPS to soap.domain.com and allow proxying to an encrypted HTTPS upstream server in your case: https://soapserver.otherdomain.com:1234/Service.asmx
In my experience nginx is the somewhat easier to setup and configure.
An appropriate nginx configuration may resemble the following:
And yes, you can use a self signed certificate
I'm not clear where you need to do this - on the SOAP client? On the SOAP server? somewhere in between? The approach is the same regardless - there are multiple ways of doing this.
The first method would allow you to preserve the client address seen by the server.