2016-09-28 3 views
1

Это не дубликат this questionrequests.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] сертификат проверить не удалось (_ssl.c: 600)

this Я проверил, но идти небезопасный путь не выглядит хорошо меня.

Я работаю над сборщиком размера изображения в python, который будет получать размер изображения на веб-странице. Прежде чем это сделать, мне нужно получить код состояния веб-страницы. Я пытался делать это так

import requests 

hdrs = {'User-Agent': 'Mozilla/5.0 (X11 Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'} 


urlResponse = requests.get(
    'http://aucoe.info/', verify=True, headers=hdrs) 
print(urlResponse.status_code) 

Это дает ошибку:

ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:600)

Я попытался изменить verify=True к

verify='/etc/ssl/certs/ca-certificates.crt'

и

verify='/etc/ssl/certs'

Но он по-прежнему дает ту же ошибку. Мне нужно получить код состояния для более 5000 URL-адресов. Пожалуйста, помогите мне. Спасибо заранее.

Python версии: версия 3,4

просит: запросы == 2.11.1

OS: Ubuntu 14,04

pyOpenSSL: 0,13

OpenSSL Версия: OpenSSL 1.0.1f 6 января 2014

ответ

3

Вам необходимо скачать корневые сертификаты GoDaddy, доступные в this site, а затем передать его в качестве параметра verify, например:

>>> r = requests.get('https://aucoe.info', verify='/path/to/gd_bundle-g2-g1.crt') 
>>> r.status_code 
200 

Если вы будете выполняя несколько запросов, вы можете настроить SSL как часть сеанса, как выделено в documentation.

+0

спасибо тонну! ты спас мой день :) –