requests.exceptions.SSLError:[SSL:CERTIFICATE_VERIFY_FAILED]证书验证失败(_ssl.c:600)

时间:2016-09-28 04:00:51

标签: python python-3.x ssl ssl-certificate python-requests

这不是this question

的重复

我查了this但是不安全的方式对我来说并不好看。

我正在使用python中的图像大小提取器,它将获取网页上的图像大小。在此之前,我需要获取网页状态代码。我试过这样做

0

这会出错:

  

ssl.SSLError:[SSL:CERTIFICATE_VERIFY_FAILED]证书验证   失败了(_ssl.c:600)

我尝试将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( 'http://aucoe.info/', verify=True, headers=hdrs) print(urlResponse.status_code) 更改为

verify=True

verify='/etc/ssl/certs/ca-certificates.crt'

但它仍然会出现同样的错误。 我需要获取超过5000个网址的状态代码。请帮助我。 提前谢谢。

Python版本: 3.4

请求版本: requests == 2.11.1

O.S: Ubuntu 14.04

pyOpenSSL: 0.13

openssl版本: OpenSSL 1.0.1f 2014年1月6日

2 个答案:

答案 0 :(得分:4)

您需要下载this site提供的GoDaddy根证书,然后将其作为参数传递给verify,如下所示:

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

如果您要执行多项请求,则可能需要将SSL配置为会话的一部分,如documentation中所示。

答案 1 :(得分:0)

您始终可以设置verify= False。简单的方法,不是最好的。