PAC files can specify that a client to proxy connection should be secure using the "HTTPS host:port" return value instead of "PROXY host:port":
When I attempt this in Qt it seems to map to QNetworkProxy::NoProxy on Windows and there is no provision for a secure connection to the proxy server.
Please note I am not talking about HTTPS connections to the destination server. I know this can be achieved with CONNECT over HTTP to the proxy. Corporate proxy servers sometimes require HTTPS to the proxy itself and this doesn't seem to be supported in Qt.
Chrome does support secure HTTPS proxies as shown in the function GetSchemeFromPacTypeInternal:
It supports both the "PROXY" and "HTTPS" PAC return values.
There is no provision for "HTTPS" in QNetworkProxyFactory::systemProxyForQuery which is probably due to it not being supported in libproxy.
There is no support for HTTPS proxies in libproxy's format_pac_response function in:
It would be great if this could be supported in Qt so that Qt apps can work correctly on corporate networks.
We currently considering having to do one of the following:
- Attempt to build our own version of Qt with HTTPS proxy support
- Use OS specific HTTP transport APIs instead of Qt network classes