您的位置:首页 > 编程语言 > Go语言

关于用Openssl生成pem文件用于Go语言实现ios推送

2014-09-22 13:50 519 查看
今天在完成ios推送过程中遇到一些问题,同事帮我注册了一个苹果的证书,然后用证书生成相应的pem文件,网上关于生成pem文件有很多方式

(1)php

deviceToken: <6974ac11 870e09fa 00e2238e 8cfafc7d 2052e342 182f5b57 fabca445 42b72e1b>

2. 生成app在服务端需要的许可*****br> 1)进入Provisioning Portal, 下载Certificates在development下的证书。

3.找到需要测试的app id,然后enable它在development下的Apple Push Notification service: Development Push SSL Certificate。需要输入1)中的签名证书才可以生成一个aps_developer_identity.cer.

4.双击aps_developer_identity.cer,会打开系统的key chain. 在My certificates下找到Apple Development Push Services。需要为certificate和它之下的private key各自export出一个.p12文件。(会出现设置密码过程)

5.需要将上面的2个.p12文件转成.pem格式:

复制代码

openssl pkcs12 -clcerts -nokeys -out cert.pem -in cert.p12
openssl pkcs12 -nocerts -out key.pem -in key.p12

6.如果需要对key不进行加密:

复制代码

openssl rsa -in key.pem -out key.unencrypted.pem
7.然后就可以合并两个.pem文件, 这个ck.pem就是服务端需要的证书了。

复制代码

cat cert.pem key.unencrypted.pem > ck.pem
(2)go

在php用openssl生成cert.pem和key.pem过程中,分别用cert.p12和key.p12文件,同事给我的只有aps_development.cer和push_dev.p12

下面用aps_development.cer生成cert.pem文件

命令:

openssl x509 -in aps_development.cer -inform der -out cert.pem
-passin pass:P12_PASS (P12_PASS为生成p12文件时的密码)
生成加密的key.pem文件
openssl pkcs12 -nocerts -out key.pem -in
push_dev.p12 -passin pass:P12_PASS -passout pass:TMP_PASS(TMP_PASS为自己设定的临时密码用于生成不加密的key.pem文件)

生成不加密的key.pem文件
openssl
rsa -in key.pem -out unencryptkey.pem -passin pass:TMP_PASS(为刚才设定的临时密码,必须大于等于4个字符)

到这里所需的cert.pem文件和unencryptkey.pem
文件就生成了。
go语言提供的tls库中的LoadX509KeyPair并没有传入密码的选项,所以要生成unencryptkey.pem
的文件,自己可以下载windows下openssl工具,然后用证书自己生成。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: