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