从私钥生成 PEM,Apple CER

Generate PEM from private key, Apple CER

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

我没有苹果电脑,所以苹果的说明没有用。使用 Windows 10.

我做了什么:

  1. 通过生成器(具体来说,WHM)制作了 CSR + 私钥。它们是纯文本格式
  2. 通过将请求复制并粘贴到文件中,创建了扩展名为 .certSigningRequest 的 CSR 文件
  3. 已将 CSR 上传到 Apple 开发中心并取回 CER 格式的证书,由 Apple 提供

所以最后,我得到了纯文本格式的私钥和 CER 格式的证书。

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

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

更新:我能够提取 CER 的文本部分,原来 Apple CER 是 DER 格式,所以可以使用:

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

但是还有一个问题:PEM在密钥和证书之间还包含某种数据(包属性,密钥属性),不知道如何生成。现在正在调查,但答案会很有帮助!

好的,我想我明白了。仍然没有测试它是否适用于真正的 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

我尝试通过组合 2 和 3 来缩短这个过程,但它没有生成纯文本 PEM。

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