2014-10-04 67 views
3
  1. 如何测试我的开发ASPN证书是否正常工作?苹果推送通知脚本不能突然工作

  2. 我的python脚本提供了以下错误:

    Traceback (most recent call last): 
        File "pushnot.py", line 15, in <module> 
        wrapper.notify() 
        File "build/bdist.macosx-10.9-intel/egg/APNSWrapper/notifications.py", line 194, in notify 
        File "build/bdist.macosx-10.9-intel/egg/APNSWrapper/connection.py", line 215, in connect 
        File "build/bdist.macosx-10.9-intel/egg/APNSWrapper/connection.py", line 161, in connect 
        File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py", line 333, in connect 
        self._real_connect(addr, False) 
        File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py", line 323, in _real_connect 
        self.do_handshake() 
        File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py", line 305, in do_handshake 
        self._sslobj.do_handshake() 
    ssl.SSLError: [Errno 1] _ssl.c:504: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure 
    

任何想法,为什么?

+0

面对同样的问题......伙计们对此有何更新? – 2014-10-08 10:04:36

+0

似乎有一个python的问题。我在使用PHP的同时。 – bobo2000 2014-10-08 12:00:00

回答

3

我设法通过使用TLSv1而不是SSLv3来连接到APNS服务器来解决此问题。问题在于python SSL库与过时的OSX OpenSSL库(我的机器上的v0.9.8)链接。当使用SSLv3时,该版本显然不再正确连接到APNS服务器。因此,相反,当设置你的连接,像这样的SSL_VERSION设置为PROTOCOL_TLSv1:

sock = socket() 
sock = ssl.wrap_socket(sock, ssl_version=ssl.PROTOCOL_TLSv1, certfile=certfile) 
sock.connect(('sandbox.push.apple.com, 2195)) 

你应该不再获得握手失败错误。

+0

你是一个绅士和学者。 – 2014-10-30 00:29:34