У меня проблема с 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.Для некоторых из них этот скрипт работает без проблем.
Спасибо за помощь.