requests.exceptions.SSLError

Question

I have fiddle.py containing 4 lines

import requests

url = "https://randomuser.me/api/"
locations = requests.get(url,verify=False).json()

print locations

When I run it, I kept getting

requests.exceptions.SSLError: [SSL: SSLV3_ALERT_HANDSHAKE_FAILURE] sslv3 alert handshake failure (_ssl.c:590)


Try #1

Set verify=False

Run the code, Same Error.


Try #2

Run sudo pip install --upgrade requests

Run the code, Same Error.


Try #3

Run

sudo pip install --upgrade pip

and

sudo pip install requests[security]

Run the code, Diff Error.

requests.exceptions.SSLError: ("bad handshake: Error([('SSL routines', 'SSL23_GET_SERVER_HELLO', 'sslv3 alert handshake failure')],)",)


Details

Python 2.7.10
OpenSSL 0.9.8zh 14 Jan 2016
Mac OS X 10.11.6

Question

How would one go about and debug this ?


I'm opening to any suggestions at this moment.

Any hints / suggestions / helps on this be will be much appreciated !


Show source
| osx   | python   | python-requests   | pyopenssl   2016-11-08 17:11 1 Answers

Answers ( 1 )

  1. 2016-11-08 17:11

    You want to be on OpenSSL 1.0.2 and python 2.7.12. You will probably also want the latest curl.

    brew update
    brew upgrade openssl
    brew upgrade curl
    brew upgrade python
    
    python --version # make sure you have python 2.7.12
    curl https://randomuser.me/api/ # to verify
    
◀ Go back