Baz*_*207 5 python ssl push-notification ios python-2.7
我一直在考虑最近为我的一个应用程序制作iOS推送通知服务.它有一个Python 2.7后端,所以我想用Python而不是PHP(或其他任何东西)来做.
我有代码发送通知并且设备收到它,但是每次运行代码时它都会要求我手动输入PEM文件的"密码短语".
这并不理想,因为我希望它在服务器上全部自动化,当需要发送通知时,它应该发送它.我在Python 2.7的文档中找不到任何允许我在连接时自动设置变量的密码短语的内容.
如果有人知道如何在Python 2.7或任何其他想法中这样做,我将非常感激.
这是一段代码:
certfile = 'devPEM.pem'
apns_address = ('gateway.sandbox.push.apple.com', 2195)
s = socket.socket()
sock = ssl.wrap_socket(s, ssl_version=ssl.PROTOCOL_SSLv3, certfile=certfile)
sock.connect(apns_address)
Run Code Online (Sandbox Code Playgroud)
提前致谢.
Baz*_*207 18
因此,BorrajaX建议的答案是在提示时不为密钥设置密码.但是这是不可能的(至少在我的Mac上)要密码至少4个字符.
解决这个问题的步骤是:
openssl pkcs12 -nocerts -out aps_key.pem -in aps_key.p12openssl rsa -in aps_key.pem -out new_aps_key.pemopenssl x509 -in aps.cer -inform der -out aps.pemcat aps.pem new_aps_key.pem > final_aps.pemfinal_aps.pem.final_aps.pem然后该文件使用上面的代码,而不会提示输入密码/密码短语.
这是一个有用的网站,我在其中找到了从.pem文件中删除密码的代码:http://www.sslshopper.com/article-most-common-openssl-commands.html
编辑:如果您不需要同一文件中的证书和密钥,则可以忽略步骤8并使用aps.pem和new_aps_key.pem文件.
| 归档时间: |
|
| 查看次数: |
5328 次 |
| 最近记录: |