2016-02-15 5 views
22

Я делаю следующий вызов branch.ioSSLError: SSLv3 отказ оповещения рукопожатие

import requests 
req = requests.get('https://bnc.lt/m/H3XKyKB3Tq', verify=False) 

Это отлично работает в моей локальной машине, но не на сервере.

SSLError: [Errno 1] _ssl.c:504: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure 

OpenSSL версии:

местные: OpenSSL 0.9.8zg 14 июля 2015

сервер: OpenSSL 0.9.8e-ФИПС-RHEL5 1 июля 2008

Python:

местный: 2.7.10 сервер: 2.7.6

соединение с сервером филиала ИО:

Chrome проверить, что DigiCert SHA2 CA Secure сервер выдал сертификат этого сайта. Сервер не предоставил информацию о прозрачности сертификата.

Я пробовал urllib2, но результат был таким же. Любая помощь?

+0

Вам нужно OpenSSL 0.9.8o хотя бы обрабатывать сертификаты sha256, чтобы ваша версия сервера была слишком старой. –

+0

Я попробовал OpenSSL 1.0.1e-fips 11 февраля 2013 года. Это дало мне ту же ошибку. –

+0

И ваш PHP использует эту версию OpenSSL? См. Здесь, чтобы узнать, как проверить: http://stackoverflow.com/questions/18752409/updating-openssl-in-python-2-7 –

ответ

31

Jyo de Lys выявил проблему. Проблема описана here, а решение - here. Я сделал следующее, чтобы получить эту работу:

  1. easy_install pyOpenSSL
  2. easy_install нсг-httpsclient
  3. easy_install pyasn1

Если вы получаете эту ошибку при использовании urllib2, вам нужно для обновления до версии python 2.7.9 или более поздней версии.

+0

Мне нужно было: а также, чтобы удалить некоторую «проверку субъектаAltName для проверки SSL-оповещений будет отключено», но в противном случае ударил и сохранил мне много сбоев. –

+0

Спасибо, мне не хватало ndg-httpsclient! –

+4

Хммм, не решил проблему для меня. – Peter

Смежные вопросы