最近由于某某三方推送到達(dá)率不夠,公司要求接入原生Apple Push。在接入的時(shí)候發(fā)現(xiàn)一些問(wèn)題,做一個(gè)總結(jié)。廢話不多說(shuō),進(jìn)入正題:
1、用openssl s_clinet -connect gateway.sandbox.push.apple.com:2195 -cert **.pem -key ***pem? 報(bào)錯(cuò),提示unable to load client certificate private key file。這個(gè)可以試下以下兩種方式解決。第一:在本地鑰匙串里面導(dǎo)出文件的時(shí)候加上密碼。第二:上述命令后面少了-key ***.pem這個(gè)
2、還有一個(gè)用openssl s_clinet -connect gateway.sandbox.push.apple.com:2195 -cert **.pem -key ***pem報(bào)錯(cuò),提示證書(shū)無(wú)法被信任。解決方法:從apple developer--all--Apple Push Services/APNs Development iOS上下載push證書(shū),后綴是.cer。然后用命令行生成pem文件,然后在本地鑰匙串找到點(diǎn)開(kāi)箭頭,選擇下面秘鑰導(dǎo)出.p12,再通過(guò)命令生成pem,最后進(jìn)行兩個(gè)pem合并。
3、自己本地用openssl s_clinet -connect gateway.sandbox.push.apple.com:2195 -cert **.pem -key ***pem驗(yàn)證成功,但是PHP一直報(bào)錯(cuò),這個(gè)得看下PHP那邊的openssl版本和自己生成證書(shū)時(shí)的openssl版本差別大不大。這個(gè)得讓PHP升級(jí)他的openssl版本。
以上是做項(xiàng)目中遇到的一些問(wèn)題,希望有所幫助!