Om Prakash Om Prakash - 10 months ago 195
Python Question

requests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:600)

This is not a duplicate of this question

I checked this but going insecure way doesn't looks good to me.

I am working on image size fetcher in python, which would fetch size of image on a web page. Before doing that I need to get web page status-code. I tried doing this way

import requests

hdrs = {'User-Agent': 'Mozilla / 5.0 (X11 Linux x86_64) AppleWebKit / 537.36 (KHTML, like Gecko) Chrome / 52.0.2743.116 Safari / 537.36'}

urlResponse = requests.get(
'', verify=True, headers=hdrs)

This gives error:

ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify
failed (_ssl.c:600)

I tried changing




But it still gives the same error.
I need to get status code for more than 5000 urls. Kindly help me.
Thanks in advance.

Python Version : 3.4

Requests version : requests==2.11.1

O.S : Ubuntu 14.04

pyOpenSSL : 0.13

openssl version : OpenSSL 1.0.1f 6 Jan 2014

Answer Source

You need to download the GoDaddy root certificates, available at this site and then pass it in as a parameter to verify, like this:

>>> r = requests.get('', verify='/path/to/gd_bundle-g2-g1.crt')
>>> r.status_code

If you'll be doing multiple requests, you may want to configure the SSL as part of the session, as highlighted in the documentation.