pycurl服务器证书验证失败。 CAfile:/etc/ssl/certs/ca-certificates.crt CRLfile:无

时间:2018-09-25 15:36:15

标签: python ubuntu-16.04 pycurl

我在抓取一些https URL时遇到pycurl问题。 这突然发生了,并且在一天之前运作良好... 这是我的代码:

ch = pycurl.Curl()

        ch.setopt(ch.HTTPHEADER, [k + ': ' + v for k, v in headers.items()])

        ch.setopt(pycurl.URL, url.encode('utf-8'))
        result_buffer = StringIO()
        header_buffer = StringIO()

        if method == 'post' :
            data = urlencode(post_data)

            ch.setopt(ch.POST, 1)
            ch.setopt(ch.POSTFIELDS, data)

        ch.setopt(ch.FOLLOWLOCATION, 1)  
        ch.setopt(ch.TIMEOUT, timeout)
        ch.setopt(ch.WRITEFUNCTION, result_buffer.write)
        ch.setopt(ch.HEADERFUNCTION, header_buffer.write)
        ch.setopt(pycurl.SSL_VERIFYPEER, 1)
        ch.setopt(pycurl.SSL_VERIFYHOST, 2)
        ch.setopt(ch.CAINFO, certifi.where())

        ch.perform()

当我尝试此代码时,它在Mac OS上运行良好,但是在Ubuntu 16.04上运行时抛出证书错误

我尝试更新ubuntu证书并重新启动服务器,但没有任何方法解决问题。

我精确地说,并非每个HTTPS网站都发生这种情况。对于其中的某些人,此脚本可以正常运行。

感谢您的帮助。

0 个答案:

没有答案