我正在尝试使用以下观察结果连接到Apple APNS服务器:
1)端口2195已打开2)具有APNS_SSLCertificate_Key.pem的有效密钥密码3)从https://www.entrust.net/downloads/binary/entrust_ssl_ca.cer
下载的委托证书(2048)
4)成功的telnet响应如下:
$ telnet gateway.sandbox.push.apple.com 2195尝试17.172.232.226 ... 连接到gateway.sandbox.push-apple.com.akadns.net。逃逸 字符是'^]'。
但是当我在服务器中运行以下openssl命令来测试APNS连接时:
openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert APNS_SSLCertificate_Key.pem -debug -showcerts -CAfile server-ca-cert.pem
我收到如下错误:
无法加载证书57013:错误:0906D06C:PEM 例程:PEM_read_bio:没有开始 行:/SourceCache/OpenSSL098/OpenSSL098-35/src/crypto/pem/pem_lib.c:650:期待: 值得信赖的证书
因此,请建议如何解决此问题
提前致谢......
答案 0 :(得分:36)
我遇到了同样的问题;最终解决错误的是从OS / X Keychain Access应用程序的系统根源重新导出Entrust证书。
为了完整,我将完整解释我是如何创建密钥/证书文件的(应该是Apple的TechNote 2265中的内容:https://developer.apple.com/library/content/technotes/tn2265/_index.html)
创建您的APN-cert-and-key:
使用终端,执行以下命令(当然使用您自己的文件名):
openssl pkcs12 -in PushCertKey.p12 -out PushCertKey.pem
(您需要输入.p12文件的密码,并为.pem文件提供另一个密码。)
如果真的真的不想在.pem文件上使用密码,请尝试:
openssl pkcs12 -in PushCertKey.p12 -out PushCertKeyNoCrypt.pem -nodes
创建CA证书文件:
运行验证命令:
openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert PushCertKey.pem -debug -showcerts -CAfile "Entrust.net Certification Authority (2048).pem"
此服务器和进程假设您正在连接到Apple的Dev沙箱APN服务器;如果您尝试使用生产APN服务器,则需要使用正确的服务器和端口。
有关openssl的更多信息,我建议以下页面:
答案 1 :(得分:0)
SSL问题:逐步修复。 大多数问题都是由私钥问题引起的,可以通过以下方式解决。
按照以下命令使用openssl创建.p12。
你需要 developer_identity.cer< =从Apple下载 mykey.p12< =您的私钥
在配置,安装或运行openssl的终端中运行以下命令:
您需要的最终p12是iphone_dev.p12文件和您设置的密码。
再试一次,希望你的问题得到解决,因为它总是对我有用。 :)