一 生成 pem 文件
pem文件是服务器向苹果服务器做推送时候需要的文件,主要是做服务器的小伙伴们要用,下面介绍一下pem文件的生成。
pem文件是服务器向苹果服务器做推送时候需要的文件,主要是做服务器的小伙伴们要用,下面介绍一下pem文件的生成。
- 打开KeychainAccess,在Certificates里面找到上篇文章中介绍的包含推送的证书。分别将certificate和privatekey导出得到.p12文件。例如:AppleDevelopment Push Services > Export “Apple Development PushServices ID123”,保存为 apns-dev-cert.p12。对“PrivateKey”做同样操作,保存为 apns-dev-key.p12 文件。
- 将 2 个 p12文件放在同一个文件夹下 cd 文件夹
- 需要通过终端命令将这些文件转换为PEM格式:
opensslpkcs12 -clcerts -nokeys -out apns-dev-cert.pem -inapns-dev-cert.p12
openssl pkcs12 -nocerts-out apns-dev-key.pem -in apns-dev-key.p12
此处要求输入一个密码,输入123456.
- 移除密码(上面的123456)
opensslrsa -in apns-dev-key.pem -out apns-dev-key.pem
- 最后,你需要将键和许可文件合成为apns-dev.pem文件,此文件在连接到APNS时需要使用:
cat apns-dev-cert.pem apns-dev-key.pem >apns-dev.pem
同样 Distribution Certificate 的pem文件生成方式一样。
opensslpkcs12 -clcerts -nokeys -out apns-dis-cert.pem -inapns-dis-cert.p12
opensslpkcs12 -nocerts -out apns-dis-key.pem -inapns-dis-key.p12
opensslpkcs12 -nocerts -out apns-dis-key.pem -inapns-dis-key.p12
openssl rsa -inapns-dis-key.pem -out apns-dis-key.pem
cat apns-dis-cert.pemapns-dis-key.pem > apns-dis.pem
二 检测
接下来就要测试一下
为了测试证书工作的状况,我们可以使用“telnet gateway.sandbox.push.apple.com 2195”来检测一下,如果显示
Trying 17.172.232.32...Connected to gateway.sandbox.push-apple.com.akadns.net.
Escape character is '^]'. 成功
三 连接苹果服务器
在终端输入如下命令:openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert apns-dev-cert.pem -key apns-dev-key.pem
需要输入密码SSL handshake has read 3347 bytes and written 2340 bytes 成功