Ошибка проверки сертификата сервера pycurl. CAfile: /etc/ssl/certs/ca-certificates.crt CRLfile: нет

У меня проблема с 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, но выдает ошибку сертификата при работе в Ubuntu 16.04

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

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

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

0 ответов

Другие вопросы по тегам