iOS开发生成PHP推送的pem证书
前言
最近准备写写博客,但不知道写些什么。刚好最近遇到后台推送证书出现了问题,要重新生成pem证书。就准备记录一下pem证书的生成方式
生成方法
生成pem证书有两种方法,我上网查了一下资料,大多都是使用方法二
,其实现在直接使用方法一
就可以了。
方法一:
1、使用钥匙串中的推送证书导出p12文件(要包含key)
2、使用导出的p12文件生成pem文件
openssl pkcs12 -clcerts -out aps_dis.pem -in aps_dis.p12
3、检测生成证书是否用用
发布证书:
openssl s_client -connect gateway.push.apple.com:2195 -cert aps_dis.pem
开发证书:
openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert aps_dis.pem
使用上面的命令出现下面结果就代表成功:
---
New, TLSv1/SSLv3, Cipher is DES-CBC3-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1
Cipher : DES-CBC3-SHA
Session-ID:
Session-ID-ctx:
Master-Key:xxxxxxxxxxxxxx
Key-Arg : None
Start Time: 1505375322
Timeout : 300 (sec)
Verify return code: 0 (ok)
---
方法二:
1、使用钥匙串中不包含key的证书导出p12文件,再使用命令生成pem文件
openssl pkcs12 -clcerts -nokeys -out aps-dis-cert.pem -in aps_dis_cer.p12
2、使用证书下的key导出p12文件,使用命令生成pem文件
openssl pkcs12 -nocerts -out aps-dis-key.pem -in aps_dis_key.p12
3、合并成最终的pem文件
cat aps-dis-cert.pem aps-dis-key.pem > aps-release.pem
4、检测生成证书是否用用
发布证书:
openssl s_client -connect gateway.push.apple.com:2195 -cert aps-dis-cert.pem -key aps-dis-key.pem
开发证书:
openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert aps-dis-cert.pem -key aps-dis-key.pem
使用上面的命令出现方法一第3步的结果就代表成功。