1

嗨,我对所有这些 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 理解,以便我可以验证证书?任何想法/帮助/建议将不胜感激。非常感谢大家。

问候哈里

4

2 回答 2

6

如果您只有文本形式的证书(希望有公钥模数和指数以及签名的详细信息),您将不得不重建 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
于 2011-05-26T20:31:09.117 回答
3

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

于 2011-05-26T20:06:02.043 回答