Ошибка проверки сертификата сервера Pycurl.CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: нет - PullRequest
0 голосов
/ 25 сентября 2018

У меня проблема с pycurl при сканировании некоторых https URL.это случилось неожиданно, раньше все работало нормально, и однажды ... вот мой код:

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, но выдает ошибку сертификата при работе в Ubuntu16.04

Я пытался обновить сертификаты Ubuntu и перезапустить сервер, но ничего не устранило проблему.

Я уверен, что это происходит не на каждом сайте HTTPS.Для некоторых из них этот скрипт работает без проблем.

Спасибо за помощь.

...