关于iOS推送证书过期的处理

1.先打开钥匙串(应用程序-实用工具-钥匙串访问-证书助理-从证书颁发机构请求证书),CA电子邮件地址填写开发者账号的邮件地址,选项选保存到磁盘,点继续,即可获取到一个.certSigningRequest文件。例如:CertificateSigningRequest.certSigningRequest

2.进入打开苹果网站的证书标签页面,选择 Identifiers标签下边的App IDs子标签,选择需要重新生成push签名的证书。

3.证书详情标签,罗列出了所有的功能状态,最后的Push Notifications显示可以配置,并不是Enabled状态,所以点击Setting功能重新上传证书。(若只是后端服务器证书过期,则是enalble状态,只需按以下步骤继续即可)

4.证书设置页面中,最下边的Push Notifications有两个配置项:

    Development SSL Certificate :测试环境证书

    Production SSL Certificate  :正式环境证书

    点击相应选项后面的Create Certificate按钮。

5.Create Certificate页面,点击Continue按钮。

6.选择上传的证书请求文件(.certSigningRequest file),也就是第一步生成的证书请求文件,上传此证书请求文件后,进入下一步。

7.上传成功后,将会在Development SSL Certificate/Production SSL Certificate下面出现新的证书。有可能在生成证书的过程中会有loading框一直在转转转,这时候重新进入此页面即可。其实此时证书(例如:apns_dis_cert.cer)已经生成了。点击download下载该证书,进入下一步。

8.双击刚才下载的证书,会自动把此证书加入到钥匙串的签名中,展开此证书。

9.在展开的子选项上右键单击,导出一个.p12的文件,命名为apns_dis_key.p12,在导出的过程中会让输入导出密码,输入相应的密码即可。

10.这时我们一共得到3个文件:

    CertificateSigningRequest.certSigningRequest

    apns_dis_key.p12

    apns_dis_cert.cer

11.用以下命令将apns_dis_cert.cer转成pem格式

openssl x509 -in apns_dis_cert.cer -inform DER -out apns_dis_cert.pem -outform PEM

12.将apns_dis_key.p12格式的私钥转换成apns_dis_key.pem(这一步会要求输入p12私钥的密码,以及设置新生成的pem密码。)

openssl pkcs12 -nocerts -out apns_dis_key.pem -in apns_dis_key.p12

13.创建用于服务端的SSL p12格式证书,命名为push.p12

openssl pkcs12 -export -in apns_dis_cert.pem -inkey apns_dis_key.pem -name "push" -out push.p12

(这一步会要求输入apns_dis_key.pem的密码,注意不是apns_dis_key.p12的密码。如果密码错误,或者CertificateSigningRequest.certSigningRequest文件不匹配都不能正常生成push.p12文件,如果生成的push.p12文件大小是0,说明生成过程中出了问题,请检查pem私钥、密码、以及CertificateSigningRequest.certSigningRequest是否正确。)

14.最后将push.p12文件传给后台人员即可。

注意:最后生成push.p12文件设置密码的时候,需要设置成跟证书一样的密码,以方便后台验证。(如果发生后台解析错误的话,应该就是密码不一致的问题)

第13步中,如果报不能解析CertificateSigningRequest.certSingingRequest文件的话,可以把 -certfile CertificateSigningRequest.certSingingRequest 删掉,即可成功导出后台推送的p12文件

你可能感兴趣的:(关于iOS推送证书过期的处理)