APNS证书过期重置

1,156 阅读1分钟

1.删除过期证书:删除MAC上钥匙串访问中对应的推送证书( WARNING:别慌,已上线的应用也是一样,删掉证书不会影响推送,只要对应的APP ID是一样的!)

2.去开发者中心删掉过期推送证书,重新生成新的推送证书 (参考链接:iOS - 推送证书的创建及过期处理iOS - 消息推送 (APNS) 证书设置指南

3.生成服务端所需的.pem文件(参考链接:如何生成.pem文件?

范例:生成xxx的推送证书.pem文件

生成公钥.pem文件: openssl pkcs12 -clcerts -nokeys -out com-test-app.pem -in com-test-app.p12

生成私钥.pem文件: openssl pkcs12 -nocerts -out com-test-app-key.pem -in com-test-app-key.p12

产出私钥pem文件密码:openssl rsa -in com-test-app-key.pem -out com-test-app-key-noenc.pem

合并公钥.pem文件、无密码私钥.pem文件: cat com-test-app.pem com-test-app-key-noenc.pem > apns-com-test-app.pem

4.执行服务端提供脚本,测试.pem文件是否可用

范例:

使用开发环境deviceToken时,执行:

curl -v -d '{"aps":{"alert":"hi","sound":"default"},"url":"m.lehe.com"}' --cert pem证书路径: -H "apns-topic: com-test-app" --http2 api.development.push.apple.com/3/device/开发环境app的devcie_token

使用线上环境deviceToken时,执行:

curl -v -d '{"aps":{"alert":"hi","sound":"default"},"url":"m.lehe.com"}' --cert pem证书路径: -H "apns-topic:com-test-app" --http2 api.push.apple.com/3/device/线上app的devcie_token