我正试图通过python向iPhone发送推送通知,如here所述,但出现以下错误:
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
以下是我让它工作的方法:
从KeyChain中以
p12
格式导出以下内容,而不提供密码:Apple Development Push Services
证书为cert.p12
primary key
下Apple Development Push Services
为pkey.p12
在终端中,转到导出证书的目录,将
p12
文件转换为pem
格式,并按如下方式连接它们:iphone_ck.pem
是您需要的证书。我使用PyAPNs遇到了相同的错误消息。这个例子是这样开始的:
原来我的问题的解决方案是包含每个.pem文件的完整系统路径:
相关问题 更多 >
编程相关推荐