将 pfx 格式的私钥转换为 pem 格式
Convert pfx formatted private key to pem format
我有一个很可能是 pfx 格式的私钥(不是很机密)。我需要将其转换为 pem 格式,以便在签名中使用它。
关键在一行。它没有单独的开始行和结束行。它在一行中,base64 编码,2284 个字母长(比我以前见过的常规 x.509 长)。我还得到了一些其他变量,包括:
种子
ID
兼容性
我能够看到它是如何创建的。它是通过首先创建一个
java.security.cert.X509Certificate
然后这个通过函数导出为PFX格式
在该函数中,我看到提到了 Keystore 实例 "PKCS12"。
还可以看到 ByteArrayOutputStream。
知道如何将这个带内衬的 base64 编码私钥转换为 pem 格式吗?该格式应该被我用于签名的 节点模块 xmlCrypto 接受。目前 xmlCrypto 使用密钥发出以下警告:
Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
能够解决这个问题。问题是,该文件不是纯 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
然后你就完成了
我有一个很可能是 pfx 格式的私钥(不是很机密)。我需要将其转换为 pem 格式,以便在签名中使用它。
关键在一行。它没有单独的开始行和结束行。它在一行中,base64 编码,2284 个字母长(比我以前见过的常规 x.509 长)。我还得到了一些其他变量,包括:
种子 ID 兼容性
我能够看到它是如何创建的。它是通过首先创建一个
java.security.cert.X509Certificate
然后这个通过函数导出为PFX格式
在该函数中,我看到提到了 Keystore 实例 "PKCS12"。 还可以看到 ByteArrayOutputStream。
知道如何将这个带内衬的 base64 编码私钥转换为 pem 格式吗?该格式应该被我用于签名的 节点模块 xmlCrypto 接受。目前 xmlCrypto 使用密钥发出以下警告:
Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag
能够解决这个问题。问题是,该文件不是纯 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
然后你就完成了