【问题标题】:Convert X.509 certificate from hex form to .cer format将 X.509 证书从十六进制格式转换为 .cer 格式
【发布时间】:2014-03-22 22:37:08
【问题描述】:

如何将 X.509 证书从十六进制转储格式转换为 .CER 格式?此外,应该首先从十六进制转储中删除空格分隔符吗?谢谢。

【问题讨论】:

    标签: cryptography openssl certificate ssl-certificate x509


    【解决方案1】:

    通常.cer 可以是二进制编码 - DER - 也可以是具有“ASCII 盔甲”的 DER,称为 PEM。

    如果您想创建 DER,您可能只需要解码十六进制。在这种情况下,您显然需要忽略十六进制中的任何空格(以及可能存在的任何其他虚假数据)。

    如果您想要 PEM,除了 base 64 编码结果并添加页眉和页脚文本外,还需要它。当然,您也可以使用现有的库来执行此操作。

    【讨论】:

    • 目标是将十六进制转换为.cer,而不是.der。我还发现它不需要删除十六进制字节之间的空格分隔符 - 知道为什么会这样吗?
    • 您的工具可能会为您删除空格。 .cer.der 只是扩展。 DER 是 .cer 通常编码的内容,尽管 Microsoft 通常 也允许 .cer 使用 PEM 编码为方便起见。要说您不想转换为 .cer 而不是 .der 是没有实际意义的 - 除了扩展名之外,文件将是相同的(这就像说您想要一个 README 而不是 .txt 文件)。
    【解决方案2】:

    您可以使用ASN.1 editor。它有一个数据转换器,可以将 HEX 转换为 PEM 格式的数据。源代码也是可用的,所以如果你需要在代码中使用它,你可以看看它是如何完成的。

    或者你可以通过命令使用 certutil.exe

    certutil -decodehex c:\cert.hex c:\cert.cer
    

    【讨论】:

    • 可以用微软的 CertUtil.exe 转换吗?
    • 我已经更新了我的答案。 @triwo 感谢您提到 certutil。我不知道是否可能。我学到了一些新东西。
    猜你喜欢
    • 2017-08-01
    • 2010-10-15
    • 2022-07-08
    • 1970-01-01
    • 2021-02-12
    • 2013-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多