从私钥Apple CER生成PEM

时间:2015-11-26 13:40:31

标签: ssl apple-push-notifications pem

我正在尝试为Apple推送通知服务创建一个.pem文件,但找不到一种简单的方法来生成它。

我无法访问Apple电脑,因此Apple的说明毫无用处。使用Windows 10。

我做了什么:

  1. 通过生成器(特别是WHM)制作CSR +私钥。它们采用纯文本格式
  2. 通过将请求复制并粘贴到文件中,创建了带有.certSigningRequest扩展名的CSR文件
  3. 将CSR上传至Apple开发中心并以CER格式取回证书,由Apple提供
  4. 所以最后,我有纯文本格式的私钥和CER格式的证书。

    但是,我读到CER应该只是一个具有不同扩展名的CRT;然而,似乎并非如此,我不知道如何从我收到的CER文件中提取纯文本证书以制作PEM。此外,我不太确定如何从我的东西生成一个p12文件(这被列为制作PEM的可能简单方法之一)。

    问题是:是否可以从CER文件中提取纯文本证书?或者,以某种方式将其与私钥一起转换为PEM? (我有OpenSSL)

    更新:我能够提取CER的文本部分,结果Apple CERs采用DER格式,因此可以使用:

    openssl x509 -in cert.cer -inform DER -out cert.crt
    

    但是仍然存在一个问题:PEM还包含密钥和证书之间的某种数据(包属性,关键属性),不知道如何生成它。现在调查,但答案非常有用!

1 个答案:

答案 0 :(得分:1)

好的,所以我想我明白了。仍然没有测试它是否适用于真正的APN,但APN是古怪的,并且无法工作一百万个原因,并且PEM看起来很好,所以这里需要做的事情(使用OpenSSL),假设你有cert.cer和cert.key(纯文本私钥):

  1. 从CER创建纯文本证书:openssl x509 -in cert.cer -inform DER -out cert.crt
  2. 从CER和KEY创建PFX:openssl pkcs12 -export -out cert.pfx -inkey cert.key -in cert.crt
  3. 将PFX转换为PEM:openssl pkcs12 -in cert.pfx -out cert.pem -nodes
  4. 我尝试通过组合2和3来缩短此过程,但它没有生成纯文本PEM。

    更新:它适用于真正的APN,所以这确实是一个解决方案。