您的位置:首页 > 移动开发 > IOS开发

iOS推送证书生成pem文件(详细步骤)

2018-04-03 17:01 393 查看


1、pem文件概述

pem文件是服务器向苹果服务器做推送时候需要的文件,主要是给php向苹果服务器验证时使用,(我用在百度推送的时候)下面介绍一下pem文件的生成。


2、生成pem文件步骤

1、打开钥匙串,选择需要生成的推送证书(不需要把证书下拉展开)



选择相应证书
 

2、将Certificate和Private key导出得到 .p12 文件

2.1、生成证书apns_dev_cert.p12的p12文件,按照下面操作导出p12,桌面对应生成apps_dev_cer.p12文件



导出相应的 p12 文件
 

 



导出证书Cer的p12文件,设置密码
 
 

2.2、生成证书对应的秘钥apns_dev_key.p12的p12文件,按照下面操作导出p12,桌面对应生成apps_dev_ker.p12文件。



导出相应证书Key的p12文件

 



导出证书Key的p12文件,设置密码
 
 

3、将apns_dev_cert.p12和apns_dev_key.p12文件对应转化为apns_dev_cer.pem和apns_dev_key.pem文件

3.1、打开终端,输入cd Desktop

3.2、将apns_dev_cert.p12文件转换为pen格式,输入openssl pkcs12 -clcerts -nokeys -out apns_dev_cert.pem -in apns_dev_cert.p12

1>. 要求输入一个密码,输入123456.(此处为导出p12的保护密码),此时桌面会生成一个apns_dev_cert.pem文件 

3.3、将apns_dev_key.p12文件转换为pen格式,输入openssl pkcs12 -nocerts -out apns_dev_key.pem -in apns_dev_key.p12

1>. 要求输入一个密码,输入123456.(此处为导出p12的保护密码)

2>. 要求验证保护密码,再一次输入123456,此时桌面会生成一个apns-dev-key.pem文件

4、将apns_dev_cer.pem和apns_dev_key.pem文件合成为apns_dev.pem文件,此文件将给php后台用于连接苹果服务器时需要使用,在终端继续输入:cat apns_dev_cer.pem apns_dev_key.pem > apns_dev.pem,此时桌面生成一个apns_dev.pem

我本人用这种方式的时候开始是出问题了一直提示验证失败,后来才知道是因为最终发现是我Mac系统版本(刚从10.12.6升到10.13)太高了,因为10.12.6的openssl版本是0.9.8zh,而10.13的系统openssl的版本是2.x.x,具体多少记不住了,公司电脑升级了,家里的还没升,百度推送不接受高于0.9.8的openssl生成的pem。

1、到https://www.openssl.org/source/old/0.9.x/ 下载openssl 0.9.8zh版本

2、解压下载的压缩包

3、cd 你解压后的压缩包目录

4、执行命令
./Configure darwin64-x86_64-cc --prefix=/usr/local/openssl --shared 

  这一步可能会遇到没有权限创建openssl文件夹的问题,可以手动到/usr/local/下创建一个openssl文件夹,然后在执行命令

5、执行命令
make &;&; make install 

6、openssl将会出现在这个路径下:/usr/local/openssl/bin/openssl,命令行查看下版本:
/usr/local/openssl/bin/openssl version 

显示0.9.8zh,成功!!!

7、生成pem:
/usr/local/openssl/bin/openssl pkcs12 -in 你的p12名字.p12 -out 输出的pem名字.pem -nodes 

8、丢给百度推送吧

最后为方便使用,我已经将生成好的0.9.8zh版openssl上传,可以直接下载使用:openssl.zip 

参考文章:http://www.cnblogs.com/gauze/p/5483703.html


3、验证生成的pem文件

在终端测试:openssl s_client -connectgateway.sandbox.push.apple.com:2195-cert apns_dev_cert.pem -key apns_dev_key.pem

终端最后显示以下内容,表示配置pem文件成功,

.............................

Key-Arg   : None

Start Time: 1467854873

Timeout   : 300 (sec)

Verify return code: 0 (ok)

如果上面这种方式不行,可以直接采用下面这种方式(我是用下面的这个方式上传百度推送证书验证成功的)

打开终端,输入cd Desktop回车

openssl pkcs12 -in aps_developer_identity.p12 -out MyApnsCert.pem -nodes这个命令。aps_developer_identity.p12 是你导出的p12证书名字,MyApnsCert.pem是你需要生成的pem文件名字。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: