【问题标题】:Can an OCSP response in DER format be converted to PEM (and back to DER)?可以将 DER 格式的 OCSP 响应转换为 PEM(并返回到 DER)吗?
【发布时间】:2022-01-12 13:31:34
【问题描述】:

我正在为我的服务器应用程序添加 OCSP 装订。决定应用程序本身不会查询 OCSP 响应程序,而是另一个进程会定期获取更新的响应并将其写入本地数据库。但是,数据库在以 DER 格式存储证书时存在问题。

我的问题是,如果很像 X509 证书,DER 到 PEM 是否是有效的转换(然后返回 DER 以装订它),或者我们是否需要找到一些替代方法将响应存储在数据库中(例如base64)?

编辑:根据 Crypt32 的输入扩展问题:我可以使用 OpenSSL 的 C API 执行此转换吗?据我所知,只有 X509 对象支持该功能,但我无法将 OCSP 响应 DER 转换为 X509 以进行此转换。

【问题讨论】:

  • 据我所知,没有为 OCSP 定义 PEM。但是您可以使用任何您想要将其存储在数据库中的二进制数据编码,即 base64、uuencode、hex,...。检索值时再次解码即可。

标签: ssl openssl ocsp


【解决方案1】:

您始终可以手动将二进制 DER 转换为 Base64 编码的字符串以存储在数据库中。只要在需要纯二进制数据时(即在 OCSP 装订中),您可以获得存储数据的二进制副本,您将如何存储数据取决于您。即接收二进制数据时,将其转换为Base64字符串并以文本形式存入数据库。当您需要读取此数据时,从数据库中读取 Bas64 字符串并转换回字节数组并将此数组传递给目标应用程序。

【讨论】:

  • 这么说,是不是不支持将钉书钉转换成PEM?而base64是要走的路吗?
  • PEM 是相同的 base64 字符串,带有一些页眉和页脚。出于存储目的,您可以使用自定义 PEM 页眉/页脚来识别内容类型。
  • 感谢您的快速回复。请查看我在原始问题中的编辑。我试图弄清楚 OpenSSL 的 API 是否提供了一种进行这种转换的方法,或者我是否需要使用非 OpenSSL 解决方案 - 有什么想法吗?
  • 您甚至不必使用任何特定工具。大多数编程语言都提供了一种将字节数组转换为 base64 字符串的简单方法,反之亦然。而DER to X509 有点无意义。 DER是数据的编码,X.509是数据的结构。
猜你喜欢
  • 2017-07-01
  • 2018-07-30
  • 1970-01-01
  • 2020-01-28
  • 2023-03-04
  • 1970-01-01
  • 2016-07-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多