2016-02-15 27 views
22

Robię następujące wezwanie do branch.ioSSLError: SSLv3 awaria alert handshake

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

Działa prawidłowo na moim komputerze lokalnym, ale nie na serwerze.

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

OpenSSL wersje:

lokalny: OpenSSL 0.9.8zg 14 lipca 2015

server: OpenSSL 0.9.8e-FIPS-RHEL5 01 lipca 2008

Python:

lokalny: 2.7.10 serwer: 2.7.6

połączenia z serwerem Oddział io:

Chrome sprawdzeniu, że DigiCert SHA2 CA Bezpieczny serwer wydany certyfikat tej witryny. Serwer nie dostarczył żadnych informacji o przezroczystości certyfikatu.

Próbowałem urllib2, ale wynik był taki sam. Jakaś pomoc?

+0

Potrzebujesz OpenSSL 0.9.8o co najmniej do obsługi certyfikatów sha256, więc twoja wersja serwera jest zbyt stara. –

+0

Próbowałem na OpenSSL 1.0.1e-fips 11 lutego 2013. Jego daje mi ten sam błąd. –

+0

A czy twój PHP używa tej wersji OpenSSL? Zobacz tutaj, aby sprawdzić szczegóły: http://stackoverflow.com/questions/18752409/updating-openssl-in-python-2-7 –

Odpowiedz

31

zidentyfikował problem. Problem jest opisany here, a rozwiązaniem jest here. Zrobiłem następujące czynności, aby uzyskać tej pracy:

  1. easy_install pyOpenSSL
  2. easy_install NDG-httpsclient
  3. easy_install pyasn1

Jeśli otrzymujesz ten błąd podczas korzystania urllib2, będziesz musiał uaktualnić do Pythona 2.7.9 lub nowszego też.

+0

Potrzebowałem: pip zainstalować pyasn1 jak również, aby usunąć niektóre „czek subjectAltName wzajemnej weryfikacji SSL zostaną wyłączone” ostrzeżenia, ale inaczej bang i zaoszczędziło mi dużo headscratching. –

+0

Dzięki, że brakowało mi ndg-httpsclient! –

+4

Hmmm, nie rozwiązał problemu dla mnie. – Peter

Powiązane problemy