首先需要生成.pem的证书 此证书用于自己的后台推送服务器与apns服务器建立一种安全连接。
在Mac上生成 Apple推送通知SSL许可证:
1. 登录到 apple Developer Connection Portal 并点击 App IDs
2. 创建一个不使用通配符的 App ID 。通配符 ID 不能用于推送通知服务。例如,我们的iPhone程序ID像这样:54im.com.PushChat
3. 点击App ID旁的“Configure”,然后按下按钮生产 推送通知许可证。根据“向导”指导的步骤生成一个签名并上传,最后下载生成的许可证。
4. 通过双击.cer文件将你的 aps_developer_identity.cer 引入Keychain中。
5. 在Mac上启动 Keychain助手,然后在login keychain中选择 Certificates分类。你将看到一个可扩展选项“Apple Development Push Servicescom.54im.PushChat”
6. 扩展此选项然后右击“Apple Development Push Services” > Export “Apple Development Push Services:com.54im.PushChat”。保存为 PushChat_cert.p12 文件。
7. 扩展“Apple Development Push Services” 对“Private Key”做同样操作,保存为 PushChat_key.p12 文件。
8. 需要通过终端命令将这些文件转换为PEM格式:
openssl pkcs12 -clcerts -nokeys -out cert.pem -in PushChat_cert.p12
9. 转换得到key的pem:
openssl pkcs12 -nocerts -out key.pem -in PushChat_key.p12
10. 如果你想要移除密码,要么在导出/转换时不要设定或者执行:
openssl rsa -in key.pem -out key.unencrypted.pem
11. 最后,你需要将键和许可文件合成为apns-dev.pem文件,此文件在连接到APNS时需要使用:
cat apns-dev-cert.pem key.unencrypted.pem > ck.pem
以下操作所需图片参照 http://my.oschina.net/hejunbinlan/blog/494721
1. 创建APPID
首先登陆我们的Apple Developer后台为将要使用推送服务的App新建一个App ID,如下图,点击新建后输入基本信息
我把要改的地方截图下来了,高手勿笑哦,屌丝第一次用mac,也是第一次进苹果开发者后台。
APPID创建好后,我们点编辑刚刚生成好的APPID,生成下development证书,生产情况下用 Production证书
创建正式过程中,要求上传一张Certificate Signing Request 证书请求签名文件
2. 生成证书请求文件
这个请求文件在自己的mac上生成
输入证书信息
3. 生成PUSH证书
还记得刚刚苹果开发者那里要上传的证书不,将生成好的这个.certSigningRequest证书上传上去,
下载aps_development.cer这个证书到mac上,如果是发布版的推送证书,就为aps_production.cer。然后双击该证书,将推送证书安装到我们的Mac机器上,安装成功后会看到如下界面(如果是发布版,则证书的Development部分显示的是Production)
需要为certificate和它之下的private key各自export出一个.p12文件。(会出现设置密码过程)
4. 导出公钥
导出私钥
5. key转换
需要将上面的2个.p12文件转成.pem格式:
openssl pkcs12 -clcerts -nokeys -out cert.pem -in Push_Chat_cert.p12
openssl pkcs12 -nocerts -out key.pem -in Push_Chat_cert_key.p12
如果需要对key不进行加密
openssl rsa -in key.pem -out key.unencrypted.pem
然后就可以 合并两个.pem文件, 这个ck.pem就是服务端需要的证书了
cat cert.pem key.unencrypted.pem > apns-dev.pem
创建 Provisioning Profile
5.3 创建 provisioning profile
接下来,需要创建 provisioning profile 以便允许应用程序安装到真实设备上。