Для исправления этой ошибки нужно было во-первых добавить сертификат удостоверящюего центра локальной сети в список доверенных, а во-вторых - указать библиотеке urllib2 список доверенных сертификатов.
Первым делом нужно установить в систему стандартные сертификаты удостоверяющих центров. Сделать это можно путём установки пакета ca-certificates:
# apt-get install ca-certificatesДополнительные сертификаты удостоверяющих центров, которым следует доверять, можно положить в каталог /usr/local/share/ca-certificates, после чего обновить файл /etc/ssl/certs/ca-certificates.crt при помощи незамысловатой команды:
# update-ca-certificatesТеперь можно указать файл /etc/ssl/certs/ca-certificates.crt библиотеке urllib2. Сделать это можно, добавив в список обработчиков запросов дополнительный обработчик, который занимается проверкой действительности SSL-сертификатов. В прошлой статье уже имеются примеры использования сразу нескольких разных обработчиков. Если воспользоваться тем же подходом, то получится примерно так:
handlers = [] # Добавляем обработчик HTTPS-запросов context = ssl.create_default_context() context.load_verify_locations('/etc/ssl/certs/ca-certificates.crt') handler = urllib2.HTTPSHandler(context=context) handlers.append(handler) opener = urllib2.build_opener(*handlers)
Комментариев нет:
Отправить комментарий