When trying to make a drupal_http_request over HTTPS from a site running PHP 5.3 (openSSL v0.9.8b) and the remote server is running openSSL v1.0.0 or newer the certificate version negotiation fails.
The internal error is: OpenSSL Error messages: error:14077458:SSL routines:SSL23_GET_SERVER_HELLO:reason(1112)
The solution is to define the transport/ssl certificate version expected. The PHP documentation has this definition: ssl:// will attempt to negotiate an SSL V2, or SSL V3 connection depending on the capabilities and preferences of the remote host. sslv2:// and sslv3:// will select the SSL V2 or SSL V3 protocol explicitly.