golang apns推送

首先处理证书
官网下载cer证书
https://developer.apple.com/account/ios/certificate/

1.cer转pem

openssl x509 -inform der -in aps_development.cer -out certificate.pem
#-in 自己的证书名
#-out 输出的证书名

因为golang 不支持p12解析,所以需要转换成pem,生成临时文件cert.pem,注意passin 和 passout 选项
P12_PASS填入你p12文件的密码,TMP_PASS建议填入和p12相同的密码

openssl pkcs12 -clcerts -nokeys -out cert.pem -in cert.p12 -passin pass:P12_PASS
#生成临时文件key.pem
openssl pkcs12 -nocerts  -out key.pem -in cert.p12 -passin pass:P12_PASS -passout pass:TMP_PASS
#去掉key.pem的密码
openssl rsa -in key.pem -out key.unencrypted.pem -passin pass:TMP_PASS

最后会生成两个cer文件cert.pem, key.unencrypted.pem

//golang里调用

cert, err := tls.LoadX509KeyPair("cert.pem", "key.unencrypted.pem")

详细代码如下

https://github.com/ttllpp/apns

添加新评论