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

newsyoung1 · · 2637 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

今天在完成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工具,然后用证书自己生成。


有疑问加站长微信联系(非本文作者)

本文来自:CSDN博客

感谢作者:newsyoung1

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

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2637 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传