python:APNS SSLError

发布于 2021-01-29 15:09:45

我试图按此处所述通过python向iPhone发送推送通知,但出现以下错误:

Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/home/omat/CA/server/ca/models.py", line 193, in push
    c.connect((host_name, 2195))
  File "/usr/lib/python2.6/ssl.py", line 307, in connect
    self.ca_certs)
SSLError: [Errno 336265225] _ssl.c:337: error:140B0009:SSL routines:
  SSL_CTX_use_PrivateKey_file:PEM lib

如回溯所言,该错误是从python ssl模块内部引发的,但该消息对我而言并不正确。有什么想法可能有问题吗?

谢谢,

垫子

编辑:

使用的证书是根据证书和私钥创建的,如下所示:

openssl pkcs12 -clcerts -nokeys -out apns-dev-cert.pem -in apns-dev-cert.p12
openssl pkcs12 -nocerts -out apns-dev-key.pem -in apns-dev-key.p12
cat apns-dev-cert.pem apns-dev-key.pem > apns-dev.pem
关注者
0
被浏览
96
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    这是我的工作方式:

    从KeyChain内部以p12格式导出以下两种格式,而无需提供密码:

    • Apple Development Push Services 证书为 cert.p12
    • primary keyApple Development Push Servicespkey.p12

    在终端中,转到已导出证书的目录,然后将p12文件转换为pem格式并将其连接起来,如下所示:

    $ openssl pkcs12 -in pkey.p12 -out pkey.pem -nodes -clcerts
    $ openssl pkcs12 -in cert.p12 -out cert.pem -nodes -clcerts
    $ cat cert.pem pkey.pem > iphone_ck.pem
    

    iphone_ck.pem 是您需要的证书。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看