p12证书转Pem
为什么能转?很重要
p12 里面包含 证书 和 私钥
pem 里面也可以包含 证书和 私钥
所以只是格式(p12是二进制, pem是Ascii)不同, 本质是一样的
P12_CERT=XXX.p12 # p12证书文件
PASSWD=XXX # p12密码
EXPORT_CERT=cert.pem # 导出pem证书
EXPORT_KEY=key.pem # 导出的pem私钥,有密码
EXPORT_KEY_UNENCRY=key.unencrypted.pem # 导出的pem私钥,无密码
EXPORT_KEY_AND_CERT=ck.pem # 含有证书和私钥的pem
openssl pkcs12 -clcerts -nokeys -out ${EXPORT_CERT} -in ${P12_CERT} -passin pass:${PASSWD} # 导出证书
openssl pkcs12 -nocerts -passout pass:${PASSWD} -out ${EXPORT_KEY} -in ${P12_CERT} -passin pass:${PASSWD} #导出私钥,有密码
openssl rsa -in ${EXPORT_KEY} -passin pass:${PASSWD} -out ${EXPORT_KEY_UNENCRY} # 导出私钥,无密码
cat ${EXPORT_CERT} ${EXPORT_KEY_UNENCRY} > ${EXPORT_KEY_AND_CERT} # 证书和私钥合起来
所以最后生成的 ck.pem 就是我们所需要的。苹果的push证书,我们在developer后台搞好后,就可以生成pem,给后台,然后就可以推送啦。