diff --git a/httprl.module b/httprl.module
index 9abeea9..50a7860 100644
--- a/httprl.module
+++ b/httprl.module
@@ -357,6 +357,7 @@ function httprl_set_default_options(&$options) {
     'connect_timeout' => httprl_variable_get('httprl_connect_timeout', HTTPRL_CONNECT_TIMEOUT),
     'ttfb_timeout' => httprl_variable_get('httprl_ttfb_timeout', HTTPRL_TTFB_TIMEOUT),
     'context' => NULL,
+    'secure_socket_transport' => 'ssl',
     'blocking' => TRUE,
     'version' => '1.0',
     'referrer' => FALSE,
@@ -485,7 +486,7 @@ function httprl_set_socket($uri, &$options, $proxy_server, &$result) {
     case 'https':
       // Note: Only works when PHP is compiled with OpenSSL support.
       $port = isset($uri['port']) ? $uri['port'] : 443;
-      $socket = 'ssl://' . $uri['host'] . ':' . $port;
+      $socket = $options['secure_socket_transport'] . '://' . $uri['host'] . ':' . $port;
       if (empty($options['headers']['Host'])) {
         $options['headers']['Host'] = $uri['host'];
       }
@@ -894,6 +895,11 @@ function httprl_establish_stream_connection(&$result) {
  *     seconds. If a timeout occurs, the error code is set to the
  *     HTTPRL_REQUEST_ABORTED constant.
  *   - context: A context resource created with stream_context_create().
+ *   - secure_socket_transport: The transport to use when making secure
+ *     requests over HTTPS; see http://php.net/manual/en/transports.inet.php
+ *     for more information. The value should be 'ssl', 'sslv2', 'sslv3' or
+ *     'tls'. Defaults to 'ssl', which will work for HTTPS requests to most
+ *     remote servers.
  *   - blocking: set to FALSE to make this not care about the returned data.
  *   - version: HTTP Version 1.0 or 1.1. Default is 1.0 for a good reason.
  *   - referrer: TRUE - send current page; FALSE - do not send current
