【问题标题】:pycurl https error: unable to get local issuer certificatepycurl https 错误:无法获取本地颁发者证书
【发布时间】:2013-04-18 01:17:31
【问题描述】:

>>> import pycurl
>>> c = pycurl.Curl()
>>> c.setopt(c.URL, 'https://quora.com')
>>> c.perform()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
pycurl.error: (60, 'SSL certificate problem: unable to get local issuer certificate')
>>>
>>> c.setopt(c.URL, 'http://quora.com')
>>> c.perform()
>>>
>>>

为什么无法获取本地颁发者证书?我该如何解决这个问题?当我在浏览器中打开 quora.com 时,我看到它的身份已经过验证。为什么会这样?如何让 pycurl 使用我的浏览器使用的相同证书?

【问题讨论】:

标签: python windows ssl ssl-certificate pycurl


【解决方案1】:

问题是pycurl 需要一个最新的证书链来验证 ssl 证书。

一个好的解决方案是使用certifi

它基本上是 mozilla 内置证书链的最新副本,该证书链包装在 python 包中,可以使用 pip 保持最新。 certifi.where() 为您提供证书包的位置。

要使pycurl 使用它,请设置CAINFO 选项:

import pycurl
import certifi

curl = pycurl.Curl()
curl.setopt(pycurl.CAINFO, certifi.where())
curl.setopt(pycurl.URL, 'https://www.quora.com')
curl.perform()

【讨论】:

    猜你喜欢
    • 2016-04-20
    • 2015-03-18
    • 2011-12-26
    • 1970-01-01
    • 2014-08-13
    • 2018-05-15
    • 2020-01-20
    • 2016-07-06
    相关资源
    最近更新 更多