最近由于某某三方推送到达率不够,公司要求接入原生Apple Push。在接入的时候发现一些问题,做一个总结。废话不多说,进入正题:
1、用openssl s_clinet -connect gateway.sandbox.push.apple.com:2195 -cert **.pem -key ***pem 报错,提示unable to load client certificate private key file。这个可以试下以下两种方式解决。第一:在本地钥匙串里面导出文件的时候加上密码。第二:上述命令后面少了-key ***.pem这个
2、还有一个用openssl s_clinet -connect gateway.sandbox.push.apple.com:2195 -cert **.pem -key ***pem报错,提示证书无法被信任。解决方法:从apple developer--all--Apple Push Services/APNs Development iOS上下载push证书,后缀是.cer。然后用命令行生成pem文件,然后在本地钥匙串找到点开箭头,选择下面秘钥导出.p12,再通过命令生成pem,最后进行两个pem合并。
3、自己本地用openssl s_clinet -connect gateway.sandbox.push.apple.com:2195 -cert **.pem -key ***pem验证成功,但是PHP一直报错,这个得看下PHP那边的openssl版本和自己生成证书时的openssl版本差别大不大。这个得让PHP升级他的openssl版本。
以上是做项目中遇到的一些问题,希望有所帮助!