Django:SSLError:[SSL] PEM lib与APNS

时间:2016-03-06 09:04:58

标签: python django ssl certificate pem

我正在开发APNS功能'与Django。

这是我向ios设备发送推送通知的代码

    PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    apns = APNs(use_sandbox=True, cert_file=PATH+'/app/certificate.pem')
    token_hex = 'UUID from ios Device'
    payload = Payload(alert="Hello World!", sound="default", badge=1)
    apns.gateway_server.send_notification(token_hex, payload)
    return Response({'test'})
  

文件" /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py",第522行, init       self._context.load_cert_chain(certfile,keyfile)   SSLError:[SSL] PEM lib(_ssl.c:2580)

是的,我已经搜索了同样的问题,而且我几乎可以肯定我的证书.pem'文件是正确的。

但是我的一个猜测是,我没有为那个' certificate.pem'插入密码。文件。

这是错误的原因吗?

如果是这样,我应该在哪里输入密码?

有人解决此错误吗?

  

' SSLError:[SSL] PEM lib'

2 个答案:

答案 0 :(得分:3)

这是因为'certifcate.pem'文件。我误解了如何创建正确的'certificate.pem'文件。我确实按照'http://www.apptuitions.com/generate-pem-file-for-push-notification/'的说明进行了操作。

然后,虽然我没有成功推送和接收通知,但我可以有所作为。

我希望这对那些有相同错误消息的人有用

答案 1 :(得分:0)

我从Apple获得了.cer.p12.pem

对我有用的是:

openssl x509 -inform der -in aps_development.cer -out cert.pem
openssl pkcs12 -in private.p12 -out key.pem -nocerts
cat key.pem cert.pem > dev.pem

我还没有使用Apple的.pem。来自网站(http://www.apptuitions.com/generate-pem-file-for-push-notification/)的方法由于某种原因无效。