code-8
code-8

Reputation: 58632

requests.exceptions.SSLError

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, different error.

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


Details

How can I debug this?

Upvotes: 6

Views: 9437

Answers (2)

user11335084
user11335084

Reputation: 63

I would make sure they are running on port 443 for https and you are not getting a redirect if on Linux you can use dig +short example.com I ran into the same issue on google hosted sites, with that command if it is google hosted you should get an output similar to ghs.googlehosted.com or the redirected url in this case I believe google hosted sites will redirect due to a Web application Firewall. When I attempt to visit the url that I get the error on from the requests.get(domain) I get redirected to login portal

Upvotes: 0

2ps
2ps

Reputation: 15916

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

Upvotes: 3

Related Questions