【问题标题】:requests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:600)requests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败 (_ssl.c:600)
【发布时间】:2026-01-17 02:55:01
【问题描述】:

这不是this question的副本

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

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

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)

这给出了错误:

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

我尝试将verify=True 更改为

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

verify='/etc/ssl/certs'

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

Python 版本: 3.4

请求版本: requests==2.11.1

操作系统: Ubuntu 14.04

pyOpenSSL: 0.13

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

【问题讨论】:

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


    【解决方案1】:

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

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

    如果您将执行多个请求,您可能希望将 SSL 配置为会话的一部分,如 documentation 中突出显示的那样。

    【讨论】:

    • 为什么是godaddy?域名是在godaddy注册的吗?
    【解决方案2】:

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

    【讨论】: