更新 APNS 推送服务的 PEM 证书(2018 版)

奇点推送」自上线到现在,已经快满一年了,于是到了该更新证书的时候。一年前我先是用 Node 写了推送服务,后来又用 Go 写,基本上一直运行很稳定。但是我没有写下如何生成证书的文档,于是又花了点时间折腾,本次就记录一下。

我的推送服务是基于 Go 语言的 slidesshow/apns 来实现的,它支持 PEM 证书和 Token 两种方式,当时我仍然使用了 PEM 证书这一形式。我已经不记得当时为何采用这种形式,总之,这次继续在 PEM 证书的基础上进行续期。

生成并安装证书

Apple Developer 网站上生成 Apple Push Notification service SSL (Sandbox & Production) 证书并下载安装至 macOS 系统后,关键的几步才开始。

导出 P12 文件

在 Keychain Access 的 App 里面导出 .p12 文件,这里需要注意的是,只需要选中「证书」然后右键导出就可以了,不需要选中 Key。

生成 PEM 文件

使用 openssl 生成 pem 文件:

openssl pkcs12 -in apns.p12 -out apns.pem -nodes -clcerts

值得一提的是,这时 apns.pem 还不能使用。

替换 Private Key 生成最终 apns.pem

使用这条指令生成 rsa 的 Private Key

openssl rsa -in aps.pem -out rsa.pem

然后手动编辑 apns.pem 文件,把里面的 Private Key 部分替换成 rsa.pem 部分,然后这个 apns.pem 才可以使用。

<推广> 本站架设于 Linode

No Comment

Leave a Comment