首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >python: APNs SSLError

python: APNs SSLError
EN

Stack Overflow用户
提问于 2011-04-29 22:52:15
回答 2查看 12.3K关注 0票数 18

我正在尝试通过python向iPhone发送推送通知,如here所述,但我收到以下错误:

代码语言:javascript
复制
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模块中引发的,但是消息并没有传递给我。你知道哪里可能出问题了吗?

谢谢,

oMat

编辑:

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

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-02 18:00:39

下面是我是如何让它工作的:

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

  • Apple Development Push Services证书作为cert.p12
  • primary key,在作为pkey.p12

Apple Development Push Services

在终端中,转到您导出证书的目录,将p12文件转换为pem格式,并按如下方式连接它们:

代码语言:javascript
复制
$ 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是您需要的证书。

票数 39
EN

Stack Overflow用户

发布于 2011-07-06 13:32:17

我在使用PyAPNs时遇到了同样的错误消息。这个例子说像这样初始化它:

代码语言:javascript
复制
apns = APNs(use_sandbox=True, cert_file='cert.pem', key_file='key.pem')

事实证明,我的问题的解决方案是为每个.pem文件包含完整的系统路径:

代码语言:javascript
复制
cert_path = os.path.join(os.path.dirname(__file__), 'cert.pem')
key_path = os.path.join(os.path.dirname(__file__), 'key.pem')
apns = APNs(use_sandbox=True, cert_file=cert_path, key_file=key_path)
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5833642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档