【问题标题】:Converting a SSL Cert to a .pem format将 SSL 证书转换为 .pem 格式
【发布时间】:2011-09-02 21:53:39
【问题描述】:

嗨,我对所有这些 openSSL 和 PEM stuf 有点陌生,所以我想我会在这里问你们。例如,我有一个像这样的文本(X509)格式的证书

Certificate:

Data:

    Version: 3 (0x2)

    Serial Number:

        1f:19:f6:de:35:dd:63:a1:42:91:8a:d5:2c:c0:ab:12

    Signature Algorithm: PKCS #1 SHA-1 With RSA Encryption

    Issuer: "CN=Thawte SGC CA,O=Thawte Consulting (Pty) Ltd.,C=ZA"

    Validity:

        Not Before: Fri Dec 18 00:00:00 2009

        Not After : Sun Dec 18 23:59:59 2011

    Subject: "CN=mail.google.com,O=Google Inc,L=Mountain View,ST=Californ

        ia,C=US"
    ............................................
    ............................................

如何将其转换为 .pem 文件以供 openssl 理解,以便验证证书?任何想法/帮助/建议将不胜感激。非常感谢大家。

问候 哈里

【问题讨论】:

  • 它看起来不像这个问题的重复。它看起来更像是以某种文本形式提供的证书。
  • 澄清一下,这不是另一个问题的重复,因为在这种情况下我没有 CRT/DER 文件,我拥有的唯一信息是存储为文本文件的证书。感谢您提供帮助。
  • 你可能会觉得这个博客很有趣:opentox.ntua.gr/index.php/blog/77-ssl-certificates
  • @Hari,如果您说您最初使用的是certutil,那么更快地为您提供更好的答案会更容易。

标签: ssl openssl ssl-certificate x509 pem


【解决方案1】:

如果您只有文本形式的证书(希望包含公钥模数和指数以及签名的详细信息),您将不得不重建 ASN.1 结构及其 DER 格式(PEM表示是 DER 形式的 base-64 编码)。

您还必须在证书中重建确切的扩展列表。我知道的大多数文本形式(例如,openssl x509 -text 的输出或浏览器的显示工具)会根据描述这些扩展的规范(如果已知)将扩展的 OID 和值转换为更易于阅读的格式。这些工具的开发者。

以相反的顺序系统地或多或少地意味着阅读大量描述潜在扩展的规范并计算出这些工具所代表的人类可读文本所代表的内容。 PKIX RFC 是这些规范之一,阅读起来并不容易,尤其是在您刚开始涉足该领域时。

除此之外,您可能无法按照与实际证书中完全相同的顺序形成 ASN.1 结构。如果您希望能够验证证书的签名,则需要能够重建确切的二进制结构。

在一般情况下,我认为不太可能成功地做到这一点。

编辑:考虑到您所说的,您似乎正在使用 LibNSS 的 certutil:

试试:

certutil -L -r -n "the-cert-nickname" -d . | openssl x509 -inform DER -outform PEM

【讨论】:

  • 啊...非常感谢。这似乎起到了作用。但是,当我尝试使用新的 pem 时,验证似乎失败了。我想那是一个不同的问题。我需要创建一个单独的问题还是您认为我可以自己编辑这个问题?无论如何,非常感谢
  • 我想说这可能是一个不同的问题。试着说出你正在尝试使用哪些工具。 certutilopenssl 都应该能够执行某种形式的验证。
  • 也许你能帮我解决这个问题stackoverflow.com/questions/19013529/…谢谢
【解决方案2】:

我不确定您在帖子中展示的内容。
这似乎是现有证书的可视化。
你是通过windows查看的吗? IE。打开 .der 或 .cer 文件?
如果您进入详细信息选项卡是这种情况,请按复制到文件并将其另存为 pem。
如果您需要将其保存为该格式。

【讨论】:

  • 感谢您的回复。不幸的是,尽管我没有这样做。我从一个从远程 cert8.db 文件中获取它的文本文件中获取它(我认为通过执行类似 certutil -L -n ...)但是我没有任何 crt 或 der 文件和唯一的信息我有这个文本格式的证书。另外为了澄清我不是通过 Windows 查看它,它存储在 linux 机器的文本文件中。再次感谢
  • 您看到的是应用程序记录的证书信息。您需要从 cert8.db 中提取证书。您可以访问它吗?
  • 我确实可以访问 cert8.db。但是我没有 key3.db 文件(它似乎被应用程序遮住了)。所以我无法用它做任何事情。就像我说的那样,我对此很陌生,我被困住了,无法做到这一点。
  • 如果无法打开证书存储,或许还有其他方法可以获取实际的证书。证书是应用部署的吗?例如。这是网站的证书吗?如果是,只需通过 https 登录网站并从浏览器复制证书
  • 我确实有 cert8.db。但同样我不知道如何将所有证书转换为 PEM 格式。也许你可以帮我解决这个问题?再次感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-03-11
  • 2010-10-22
  • 1970-01-01
  • 1970-01-01
  • 2014-04-13
  • 1970-01-01
相关资源
最近更新 更多