From c19650b00f0c169cdf6372a093425830e11a8771 Mon Sep 17 00:00:00 2001 From: Joseph McCullough Date: Sun, 19 Aug 2012 21:48:30 -0500 Subject: [PATCH] Fix SSL3 error on Ubuntu 12.04 --- requests/packages/urllib3/connectionpool.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/requests/packages/urllib3/connectionpool.py b/requests/packages/urllib3/connectionpool.py index 97da5446..26f01767 100644 --- a/requests/packages/urllib3/connectionpool.py +++ b/requests/packages/urllib3/connectionpool.py @@ -96,9 +96,17 @@ class VerifiedHTTPSConnection(HTTPSConnection): # Wrap socket using verification with the root certs in # trusted_root_certs - self.sock = ssl.wrap_socket(sock, self.key_file, self.cert_file, - cert_reqs=self.cert_reqs, - ca_certs=self.ca_certs) + try: + self.sock = ssl.wrap_socket(sock, self.key_file, self.cert_file, + cert_reqs=self.cert_reqs, + ca_certs=self.ca_certs, + ssl_version=ssl.PROTOCOL_SSLv3) + except ssl.SSLError: + self.sock = ssl.wrap_socket(sock, self.key_file, self.cert_file, + cert_reqs=self.cert_reqs, + ca_certs=self.ca_certs, + ssl_version=ssl.PROTOCOL_SSLv23) + if self.ca_certs: match_hostname(self.sock.getpeercert(), self.host)