Can an OpenVPN server push proxy settings to an iOS device?
Yes. An OpenVPN server can push HTTP and HTTPS proxy settings to an iOS client such that these settings will be used by Safari (or other iOS browsers) during the duration of the VPN session. For example, suppose that you are managing an OpenVPN Server and want iOS clients, after they connect, to use an HTTP/HTTPS proxy at 10.144.5.14 port 3128. You could add the following directives to the OpenVPN server-side configuration to push these settings to clients:
push "dhcp-option PROXY_HTTP 10.144.5.14 3128" push "dhcp-option PROXY_HTTPS 10.144.5.14 3128"
Suppose also that you want several web domains to connect directly (example1.tld, example2.tld, and example3.tld), without going through the proxy:
push "dhcp-option PROXY_BYPASS example1.tld example2.tld example3.tld"
If your site uses a Proxy Autoconfiguration URL, you can specify the URL as follows:
push "dhcp-option PROXY_AUTO_CONFIG_URL https://example.tld/proxy.pac"
If you don't want to (or can't) modify the OpenVPN server configuration, you can also add proxy directives directly to the client .ovpn profile, by simply removing the enclosing push "..." from the directive:
dhcp-option PROXY_HTTP 10.144.5.14 3128 dhcp-option PROXY_HTTPS 10.144.5.14 3128
In some cases, if you push proxy options, it may also be necessary to push a DNS server address as well:
push "dhcp-option DNS 18.104.22.168"
Note that this feature controls application proxy use over the VPN tunnel and is not related to the connection proxy capability of OpenVPN to connect to a server through an HTTP proxy. The connection proxy capability is a separate feature that is accessed through the Settings App under OpenVPN or by using the http-proxy and http-proxy-optiondirectives.