Fed*_*ick 11 ssl push push-notification apple-push-notifications
我正在尝试使用以下观察连接到Apple APNS服务器:
1)端口2195打开2)使用APNS_SSLCertificate_Key.pem的有效密钥密码3)从下载的Entrust证书(2048) https://www.entrust.net/downloads/binary/entrust_ssl_ca.cer
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
Run Code Online (Sandbox Code Playgroud)
我收到如下错误:
无法加载证书57013:错误:0906D06C:PEM例程:PEM_read_bio:无起始行:/SourceCache/OpenSSL098/OpenSSL098-35/src/crypto/pem/pem_lib.c:650:期待:TRUSTED CERTIFICATE
所以请建议如何解决这个问题
提前致谢 ......
Rob*_*man 36
我遇到了同样的问题; 最终解决错误的是从OS/X Keychain Access应用程序的System Roots重新导出Entrust证书.
是完整的,我给的我是如何创建的密钥/证书文件(一些东西,应该是在苹果的技术说明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"
Run Code Online (Sandbox Code Playgroud)
此服务器和进程假定您正在连接到Apple的Dev沙箱APN服务器; 如果您尝试使用生产APN服务器,则需要使用正确的服务器和端口.
有关openssl的更多信息,我建议以下页面: