Is it possible to have HTTPS connections over proxy servers? If yes, what kind of proxy server allows this?
TLS/SSL (The S in HTTPS) guarantees that there are no eavesdroppers between you and the server you are contacting, i.e. no proxies. Nevertheless, you could use the following hack:
- Client starts HTTPS session
- Proxy intercepts the call and returns an ad-hoc generated(possibly weak) certificate Ka, signed by a certificate authority that is unconditionally trusted by the client.
- Proxy starts HTTPS session to target
- Proxy verifies integrity of SSL certificate; displays error if the cert is not valid.
- Proxy streams content, decrypts it and re-encrypts it with Ka
- Client displays stuff
I think I heard of a solution implementing this. Unfortunately, I can't remember its name.
as far as i can remember, you need to use a HTTP CONNECT query on the proxy. this will the convert the request connection to a transparent TCP/IP tunnel.
so you need to know if the proxy server you use support this protocol.
What if we assume that the client doesn't validate the proxy's certificate? (He only trusts the server's certificate). Is it possible then to communicate with the server on https if the client has a valid proxy set?
If it's still of interest, here is an answer to a similar question: http://stackoverflow.com/questions/3118602/convert-http-proxy-to-https-proxy-in-twisted/3186044#3186044
To answer the second part of the question:
If yes, what kind of proxy server allows this?
Out of the box, most proxy servers will be configured to allow HTTPS connections only to port 443, so https URIs with custom ports wouldn't work. This is generally configurable, depending on the proxy server. Squid and TinyProxy support this, for example.