If you want to use a secure gateway to connect to a web site, then on Windows and on Android we essentially open a SSH tunnel and use that as a proxy server for your web connection.

The only option to display web sites on iOS is to use Apple's WebKit engine. Unfortunately, the component which we need to use (WKWebView) doesn't support specifying proxy servers per web site.

So on iPhone and iPad devices we need to open a SSH tunnel through the secure gateway directly to the destination IP and port. The web view can then be told to load the web site from a local port.
We change the URL from e.g. https://myinternalserver/ to https://127.0.0.1:54321/.

Unfortunately this workaround has some drawbacks:

  • If the web site loads some file from an absolute URL, then these requests will not use the tunnel and may fail if the destination is not reachable from your device. Most web sites will only use relative links to load other files, but not all of them.
  • If the target web server checks the host header, then this will be 127.0.0.1 and the server cannot know, which web site it should serve. Usually only big web servers which serve multiple web sites do that. Small routers or other devices only serve one web site and ignore the host header.