【发布时间】:2014-03-22 22:37:08
【问题描述】:
如何将 X.509 证书从十六进制转储格式转换为 .CER 格式?此外,应该首先从十六进制转储中删除空格分隔符吗?谢谢。
【问题讨论】:
标签: cryptography openssl certificate ssl-certificate x509
如何将 X.509 证书从十六进制转储格式转换为 .CER 格式?此外,应该首先从十六进制转储中删除空格分隔符吗?谢谢。
【问题讨论】:
标签: cryptography openssl certificate ssl-certificate x509
通常.cer 可以是二进制编码 - DER - 也可以是具有“ASCII 盔甲”的 DER,称为 PEM。
如果您想创建 DER,您可能只需要解码十六进制。在这种情况下,您显然需要忽略十六进制中的任何空格(以及可能存在的任何其他虚假数据)。
如果您想要 PEM,除了 base 64 编码结果并添加页眉和页脚文本外,还需要它。当然,您也可以使用现有的库来执行此操作。
【讨论】:
.cer,而不是.der。我还发现它不需要删除十六进制字节之间的空格分隔符 - 知道为什么会这样吗?
.cer 和 .der 只是扩展。 DER 是 .cer 通常编码的内容,尽管 Microsoft 通常 也允许 .cer 使用 PEM 编码为方便起见。要说您不想转换为 .cer 而不是 .der 是没有实际意义的 - 除了扩展名之外,文件将是相同的(这就像说您想要一个 README 而不是 .txt 文件)。
您可以使用ASN.1 editor。它有一个数据转换器,可以将 HEX 转换为 PEM 格式的数据。源代码也是可用的,所以如果你需要在代码中使用它,你可以看看它是如何完成的。
或者你可以通过命令使用 certutil.exe
certutil -decodehex c:\cert.hex c:\cert.cer
【讨论】: