iOS 推送证书生成pem
2022-04-26 本文已影响0人
何康老鬼
需求:配置推送,PHP后台需要pem证书
1.先打开钥匙串访问,通过菜单栏里的证书助手请求证书生成.certSigningRequest 文件
2.通过登录开发者网站在APPID里面的PUSH配置下下载生产推送证书和开发推送证书
3.双击运行在钥匙串中找到两个证书分别导出.p12文件,同事分别导出展开的证书下面的那个秘钥(一般电脑的用户名)也生成.p12文件
这样就得到了4个文件
1.生产证书 xx_cer_push.p12 (证书用cer表示) 、 xx_key_push.p12(秘钥用key表示)
2.生产证书 xx_cer_sadboxpush.p12 (证书用cer表示) 、 xx_key_sadboxpush.p12(秘钥用key表示)
4.转换证书格式这里只以开发证书为例子,步骤都一样的
1.先把证书转换
openssl pkcs12 -clcerts -nokeys -out dev_cert.pem -in xx_cer_push.p12
2.再转换秘钥
openssl pkcs12 -nocerts -out dev_key.pem -in xx_key_push.p12
3.合成证书
cat xx_cer_push.pem xx_key_push.pem > XXXX.pem
5.验证证书是否成功 ,展示效果和下面一样的话代表成功(我开始开了抓包,有代理,一直显示报错(Enter pass phrase for dev_key.pem: connect: Connection refused connect:errno=61),关掉就行了)
开发证书终端输入:
openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert dev_cert.pem -key dev_key.pem
生产证书终端输入:
openssl s_client -connect gateway.push.apple.com:2195 -cert pro_cert.pem -key pro_key.pem
成功的效果:
······
New, TLSv1/SSLv3, Cipher is DES-CBC3-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
Protocol : TLSv1.2
Cipher : DES-CBC3-SHA
Session-ID:
Session-ID-ctx:
Master-Key: 04CB88604F587B59660EB6A0F7BAF90BA98649D72ACDA1BDA79166A02EC673E385931436EED9AE57B136B1A56BF6CEE5
Start Time: 1650978377
Timeout : 7200 (sec)
Verify return code: 0 (ok)
---
closed
总结:生产证书的步骤也是一样的,只不过测试结果的终端方法不一样,注意名称不要搞错了,密码的话我全部设置123456,你们记得住可以自由设置,需要注意的是秘钥第二次、三次输入的密码需要记住给服务器。