【问题标题】:Convert pfx formatted private key to pem format将 pfx 格式的私钥转换为 pem 格式
【发布时间】:2016-08-24 10:39:03
【问题描述】:

我有一个很可能是 pfx 格式的私钥(不是非常机密的)。我需要将其转换为 pem 格式,以便在签名中使用它。

密钥在一行中。它没有单独的开始行和结束行。它在一行中,base64 编码,2284 个字母长(比我以前见过的常规 x.509 长)。我还得到了其他一些变量,包括:

种子 ID 兼容性

我能够看到它是如何创建的。它是通过首先创建一个

java.security.cert.X509Certificate

然后通过函数将其导出为PFX格式。

在该函数中,我看到提到了 Keystore 实例“PKCS12”。 还可以看到 ByteArrayOutputStream。

知道如何将这一行的 base64 编码私钥转换为 pem 格式吗?我用于签名的 node 模块 xmlCrypto 应该接受这种格式。目前 xmlCrypto 使用密钥发出以下警告:

错误:错误:0D0680A8:asn1 编码例程:ASN1_CHECK_TLEN:错误标签

【问题讨论】:

    标签: java node.js cryptography digital-signature


    【解决方案1】:

    能够解决这个问题。问题是,该文件不是纯 pfx 格式。但它是 base64 编码格式。为了在 openssl 工具的帮助下将其转换为 pem 格式,必须首先将文件解码为其原始 .pfx 格式。并且不要使用在线解码器。使用linux,你可以这样解码:

    echo <the encoded pfx content> | base64 --decode > decoded-pfx-filename.pfx
    

    之后就可以使用openssl了:

    openssl pkcs12 -in decoded-pfx-filename.pfx -out cert-and-privkey-in-pem.pem -nodes
    

    然后你就完成了

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-26
      • 2020-01-28
      • 2019-06-21
      • 2017-06-13
      • 2013-04-12
      • 1970-01-01
      相关资源
      最近更新 更多