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