最近在做iPhone的推送了,生成APNS证书则是进行该任务的第一步(哈…好像我昨天也折腾的证书),在操作过程中有一些值得记录的地方在此做个记录。
创建App ID
这个是使用APNS必须的标识。创建过程其实也挺简单的,不过值得注意的是创建的App ID要是Explicit类型,Wildcard IDs不能用消息推送服务。
生成Certificate Request和Apple Push Notification service SSL Certificate
这一步骤在Mac OS X上的“钥匙串访问”这一程序中进行,通过Keychain Access -> Certificate Assistant -> Request a Certificate From a Certificate Authority生成并选择保存在磁盘上。
之后则是在开发者网站中的App ID配置页中对消息推送进行配置,当然就是通过上传生成好的Certificate Request然后生成对应的证书。
生成证书
将证书下载下来然后导入到“钥匙串访问”中,然后在Keychains一栏选择“login”,并从Category一栏中筛选Certificates,可以看到证书。将其导出为p12格式。
使用证书
在实际使用时,我们可能需要将该文件转换成pem格式:
openssl pkcs12 -clcerts -nokeys -out cert.pem -in apns.p12 openssl pkcs12 -nocerts -out key.pem -in apns.p12
如果要移除密码,可以在导出/转换时不设定密码或者执行以下代码:
openssl rsa -in key.pem -out key-noencript.pem
最后将密钥和证书进行合并操作:
cat cert.pem key-noencript.pem > apns.pem
另外还需要注意的是,对于开发测试,推送使用的是sandbox,其链接为:
gateway.sandbox.push.apple.com:2195
对于发布版本的应用程序,推送则使用:
gateway.push.apple.com:2195
参考资料: