将SSL证书转换为.pem格式

Har*_*ari 1 ssl openssl ssl-certificate pem x509

嗨,我对所有这个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"
    ............................................
    ............................................
Run Code Online (Sandbox Code Playgroud)

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

关心哈里

Bru*_*uno 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
Run Code Online (Sandbox Code Playgroud)