准备:
(1) .cer的SSH证书
(2) 私钥.p12文件
php需要做的
1.
将证书转化成.pem文件
openssl x509 -in aps_dev.ceer -inform der -out cert.pem
2.
将私钥.p12文件转化成.pem文件
openssl pkcs12 -nocerts -out key.p12 -in key.pem
Enter Import Password:
MAC verif ied OK
Enter PEM pass phrase:
Verifying -Enter PEM pass Phrase:
这里我们需要输入密码,这个密码是我们导出.p12文件的密码。然后需要对我们生成的pem文件设置一个密语,推荐两者一样,防止混乱,这个密语我们需要连接服务器的时候需要使用
这时候我们会生成两个文件cert.pem和key.pem
3.对生成的两个文件进行合并(把证书和私钥整合到一个文件)
cat cert.pem key.pem>ck.pem
生成ck.pem
尝试证书是否能够工作
telnet gateway.sandbox.push.apple.com 2195
4.测试生成的ck.pem是否能够使用或者测试我们生成的证书和私钥能否使用
使用生成的证书和私钥来设置一个安全的链接去链接苹果服务器
openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert cert.pem -key key.pem
执行完成之后输入 我们的密语
Enter pass phrase for key.pem:
出现成功的界面 :
这里要注意私钥
5.测试项目
https://github.com/dudj/iospush
常见问题:
1、在用证书和秘钥链接服务器时出现提示:
Error opening client certificate private key filePushChatKey.pem
20839:error:02001002:system library:fopen:No such file ordirectory:/SourceCache/OpenSSL098/OpenSSL098-44/src/crypto/bio/bss_file.c:356:fopen('PushChatKey.pem','r')
20839:error:20074002:BIO routines:FILE_CTRL:systemlib:/SourceCache/OpenSSL098/OpenSSL098-44/src/crypto/bio/bss_file.c:358:
unable to load client certificate private key file