Сбой проверки сертификата с Python запросами - PullRequest
1 голос
/ 23 апреля 2020

Я пытаюсь загрузить веб-сайт, используя Python пакет запросов через http / https прокси:

url = 'https://booster-magazine.ch'  # Example of failing URL
proxies = {
    'http': 'proxy.domain.internal:4321',
    'https': 'proxy.domain.internal:4321',
}
r = requests.get(url, proxies=proxies)

Запуск этого запускает следующее сообщение об ошибке requests.exceptions.SSLError: ("bad handshake: Error([('SSL Routine', 'ssl3_get_server_certificate', 'certificate verify failed')],)",)

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

curl -x proxy.domain.internal:4321 https://booster-magazine.ch  # No error

Некоторые сайты, которые я тестировал, не работают в то время как другие работают нормально. Насколько я могу судить, отчет SSL Labs для этого неисправного сайта не имеет проблем.

Версии пакета, которые я использую:

requests==2.23.0
certifi==2020.4.5.1

Мне известно о существовании опции verify=False в библиотеке запросов. Как правило, это плохая практика и открывает возможность для смягчения атак. Цель состоит в том, чтобы иметь работающую проверку SSL.

...