I am not sure what architecture you want to achieve, so I will describe all possibilities:
1.
load balancer --80--> TLS Proxy --443--> clientserver.com
In this setup, you will replace your IIS application with TLS Proxy, which will simply forward all traffic from load balancer to clientserver.com
.
In this case, the proxy configuration would be:
tlsproxy tunnel add
--in 0.0.0.0.:80
--out clientserver.com:443 --out-protocol TLS --out-tls-versions TLS12
However, to make this working correctly, you probably need to override HTTP Host
header in HTTP requests, because I suppose that FQDN of the load balance is not clientserver.com
.
If overriding the Host
header is needed, the proxy configuration would be:
tlsproxy tunnel add
--in 0.0.0.0.:80
--out clientserver.com:443 --out-protocol HTTPS --out-tls-versions TLS12
--http-host-override clientserver.com
2.
load balancer --80--> IIS app --80--> TLS Proxy --443--> clientserver.com
In this setup, your current IIS app
must be change to use HTTP instead of HTTPS. It can be done by requesting http://localhost
instead of https://clientserver.com
. In this case you will very probably need to use the configuration with Host
override:
tlsproxy tunnel add
--in 0.0.0.0.:80
--out clientserver.com:443 --out-protocol HTTPS --out-tls-versions TLS12
--http-host-override clientserver.com
Alternatively, you can change https://clientserver.com
(HTTPS) to http://clientserver.com
(HTTP) and route clientserver.com
connections from IIS app
to TLS Proxy using DNS or network settings. In this case, the proxy configuration would be:
tlsproxy tunnel add
--in 0.0.0.0.:80
--out clientserver.com:443 --out-protocol TLS --out-tls-versions TLS12
3.
load balancer --80--> IIS app --443--> TLS Proxy --443--> clientserver.com
A) In this setup, your IIS app
can remain unchanged, you only need to route clientserver.com
connections from IIS app
to TLS Proxy using DNS or network settings.
The proxy configuration would be:
tlsproxy tunnel add
--in 0.0.0.0.:443 --in-protocol TLS --in-tls-versions TLS12
--out clientserver.com:443 --out-protocol TLS --out-tls-versions TLS12
--certificate clientserver.com
The certificate presented by the TLS Proxy must be issued to clientserver.com
, so the IIS app
can validate it (it thinks it communicates with clientserver.com
).
B) Or you can modify the IIS app
to use https://localhost
instead of https://clientserver.com
.
The proxy configuration would be:
tlsproxy tunnel add
--in 0.0.0.0.:443 --in-protocol TLS --in-tls-versions TLS12
--out clientserver.com:443 --out-protocol TLS --out-tls-versions TLS12
--certificate localhost
--sni-override clientserver.com
--http-host-override clientserver.com
The certificate presented by the TLS Proxy must be issued to localhost
, so the IIS app
can validate it (it is connecting to https://localhost
).