2014-10-29 154 views
3

我使用Debian的6.0蟒蛇2.6和得到以下回溯SSLv3的警報握手失敗

File "/home/pwal/api/env/lib/python2.6/site-packages/APNSWrapper/notifications.py", line 194, in notify 
apnsConnection.connect(apnsHost, self.apnsPort) 

File "/home/pwal/api/env/lib/python2.6/site-packages/APNSWrapper/connection.py", line 215, in connect 
self.context().connect(host, port) 

File "/home/pwal/api/env/lib/python2.6/site-packages/APNSWrapper/connection.py", line 161, in connect 
self.connectionContext.connect((host, port)) 

File "/usr/lib/python2.6/ssl.py", line 295, in connect 
self.do_handshake() 

File "/usr/lib/python2.6/ssl.py", line 279, in do_handshake 
self._sslobj.do_handshake() 

SSLError: [Errno 1] _ssl.c:490: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure 

有人可以幫助我該怎麼做才能解決這個問題?

回答

9

這個錯誤是由於被稱爲貴賓最近OpenSSL的SSL V3的漏洞。

蘋果(以及其他許多)已禁用SSL V3但APNSWrapper明確使用SSL V3。

不要害怕修復很容易。改變這一行的代碼:

ssl_version = self.ssl_module.PROTOCOL_SSLv3, 

閱讀:

ssl_version = self.ssl_module.PROTOCOL_TLSv1, 

APNSWrapper/connection.py線131

確保使新的代碼被編譯到重新啓動任何正在運行的進程。

還記得要更新包不是你自己的代碼,因此,如果您重新安裝APNSWrapper包裝的另一個服務器上,您將需要重新修補。祝你好運!

+0

你救了我一天@Jason Leidigh – pavanmvn 2014-10-31 09:05:31

+1

這讓我發現「apns-client」有同樣的問題,用'context = OpenSSL.SSL.Context(OpenSSL.SSL.SSL)替換後端/ stdio.py中的第41行來修復.TLSv1_METHOD)'謝謝! – MechEthan 2014-12-13 02:24:17