我一直在努力为我的应用程序正确设置推送通知证书。该应用程序已经在商店中,因此我不能只是“重新开始”生成文件,因为这是其他人遇到此问题的解决方案!
我以本文为例创建证书:http://www.raywenderlich.com/32960/apple-push-notification-services-in-ios-6-tutorial-part-1#comments。当我到达测试我生成的内容时,我得到了:
openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert PushTestCert.pem -key PushTestKey.pem
输入密码短语 PushTestKey.pem:
错误设置私钥
4368:错误:0B080074:X509 证书例程:X509_check_private_key:键值 不匹配:/SourceCache/OpenSSL098/OpenSSL098-35.1/src/crypto/x509/x509_cmp.c:406:
该示例显示了Keychain Access的Keys部分中的应用程序。我的应用程序在那里,但在私钥下它有一个证书(我的iPhone开发人员证书)。我是否需要将这两个项目导出到我的p12或私钥中?
我已经尝试下载aps_development.cer并将其转换为pem并从Keychain Access创建cert pem,并且在任何一种情况下都没有成功。
其他帖子提示应用p12错误,但我怎么能看到私钥是什么以及为什么会出现不匹配?
答案 0 :(得分:2)
您应该将您的apns证书作为单独的证书/密钥pem文件提供。并且您需要从密钥中删除密码。
从p12中分离pem文件
openssl pkcs12 -clcerts -nokeys -out cert.pem -in cert.p12
openssl pkcs12 -nocerts -out key.pem -in key.p12
从pem文件中删除密码
openssl rsa -in key.pem -out key-noenc.pem
答案 1 :(得分:1)
我的问题是我正在为推送通知创建单独的证书。一旦我使用原始CSR为应用程序一切正常。
我的坏!