This issue is a fork from the issue #7881: Add support to drupal_http_request() for proxy servers (http not https) where community have scheduled to get support for SSL proxies using the curl library, such a support would be likely delayed to Drupal 8.
Present patch tries to demonstrate support for SSL proxies can be achieved now, at Drupal 7, without the curl library.
Basically, the patch consists on a remake of the function drupal_http_request() at file common.inc, including following new capabilities:
* Support for web proxies forwarding HTTP requests (RFC-2617, Basic Scheme)
* Support for web proxies forwarding HTTPS requests (RFC-2817)
* Additional support for the HEAD method
* Support to merge headers Set-Cookie2 (RFC-2965)
* Partial/initial support to detect message-body length (RF-2616 section 4.4)
* Support to specify as an option the protocol HTTP/1.1 (although HTPP/1.0 is still the default protocol)
* Support to (optionally) open/close the socket from callers
* Support for all error conditions (I think so)
* General clean-up of the function drupal_http_request()
I have just tested (moderately) in-deep in my environment: Drupal running with PHP 5.2 on Linux 2.6.31. Hopefully, it will works on other plataforms.
Please, test and consider to use it.