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

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

(1)php

  1. 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工具,然后用证书自己生成。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值