iOS开发 - Mac上配置推送使用的pem文件

版权声明:技术是无罪的,欢迎大家多多交流,转载的地方请注明作者出处!谢谢! https://blog.csdn.net/www_131374/article/details/83590586

感觉上应该是这样的,这个pem文件是由公钥和私钥配置。公钥就是苹果开发者网站生成的cer文件,私钥就是钥匙串中这个证书导出的p12文件。这个找机会深入研究一下。

直接说配置步骤(以开发环境为准,生产环境类似):

1、创建证书

长话短说,从钥匙串的证书助理中请求一个csr文件到本地,使用这个csr文件创建开发环境推送证书,下载到本地。

小技巧:可以从bundle id的setting界面create推送证书。

2、导出p12文件

双击下载好的证书,导入钥匙串中,在钥匙串中找个这个证书,展开前边的小三角,能看到下属一个图标未钥匙的私有key,右键导出为p12文件,密码随便输入一个(假设输入的123)。

3、导出pem文件

将步骤1、2中的文件放在同一个文件夹下,终端打开,cd进入该文件夹。

假设步骤1的文件名为aps_development.cer,步骤2的文件名为key.p12

终端依次执行

导出公钥的pem文件:openssl x509 -in aps_development.cer -inform der -out PushNotifCert.pem

导出私钥的pem文件:openssl pkcs12 -nocerts -out PushNotifKey.pem -in key.p12,这一步会提示输入import密码,输入步骤2的导出密码123,然后要求输入pem文件的密码,随便输入一个(假设输入的1234)。再次校验(输入1234)。

导出私钥的无密码pem文件:openssl rsa -in PushNotifKey.pem -out PushNotifNokey.pem。这一步会校验密码,输入上一步的密码1234。

最后将公钥私钥合并为推送使用的pem文件:cat PushNotifCert.pem PushNotifNoKey.pem > dev_push.pem

桌面是生成的dev_push.pem文件即为推送需要的证书文件。

生成完毕之后,可以测试一波(用到公钥pem文件和私钥的无密码pem文件):

终端测试开发环境的证书:openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert PushNotifCert.pem -key PushNotifNoKey.pem

终端测试生产环境的证书:openssl s_client -connect gateway.push.apple.com:2195 -cert PushNotifCert.pem -key PushNotifNoKey.pem

可能报错,不包含私有key或者加载私有key失败,这种情况多半是证书的问题,重新配置一下证书。

成功的话,会输出一大堆,然后会输出closed。

猜你喜欢

转载自blog.csdn.net/www_131374/article/details/83590586
今日推荐