2016-02-15 21 views
22

Tôi đang thực hiện cuộc gọi sau đây để branch.ioSSLError: SSLv3 bắt tay cảnh báo thất bại

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

Nó hoạt động tốt trong máy tính cục bộ của tôi, nhưng thất bại trong máy chủ.

phiên bản
SSLError: [Errno 1] _ssl.c:504: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure 

OpenSSL:

địa phương: OpenSSL 0.9.8zg 14 tháng 7 năm 2015

server: OpenSSL 0.9.8e-FIPS-rhel5 01 Tháng Bảy 2008

Python:

địa phương: 2.7.10 máy chủ: 2.7.6

kết nối máy chủ chi nhánh io:

Chrome xác minh rằng DigiCert SHA2 an toàn máy chủ CA phát hành chứng chỉ của trang web này. Máy chủ không cung cấp bất kỳ thông tin nào về Tính minh bạch của chứng chỉ.

Tôi đã thử urllib2, nhưng kết quả giống nhau. Bất kỳ giúp đỡ?

+0

Bạn cần OpenSSL 0.9.8o ít nhất để xử lý chứng chỉ sha256 để phiên bản máy chủ của bạn quá cũ. –

+0

Tôi đã thử trên OpenSSL 1.0.1e-fips 11 Feb 2013. Nó cho tôi lỗi tương tự. –

+0

Và PHP của bạn có sử dụng phiên bản OpenSSL đó không? Xem tại đây để biết chi tiết về cách kiểm tra: http://stackoverflow.com/questions/18752409/updating-openssl-in-python-2-7 –

Trả lời

31

Jyo de Lys đã xác định được sự cố. Vấn đề được mô tả here và giải pháp là here. Tôi đã làm như sau để làm việc này:

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

Nếu bạn nhận được lỗi này khi sử dụng urllib2, bạn sẽ cần để nâng cấp lên python 2.7.9 trở lên.

+0

Tôi cần: pip install pyasn1 cũng như, để xóa một số "kiểm tra đối chứng SSL cho SubjectAltName sẽ bị vô hiệu hóa" cảnh báo, nhưng nói cách khác là bật và lưu tôi nhiều headscratching. –

+0

Cảm ơn, tôi đã thiếu ndg-httpsclient! –

+4

Hmmm, không giải quyết được vấn đề cho tôi. – Peter

Các vấn đề liên quan