代码之家  ›  专栏  ›  技术社区  ›  l0b0

如何从文件中确定证书类型

  •  25
  • l0b0  · 技术社区  · 15 年前

    对于OpenSSL证书,似乎没有任何标准的命名约定,所以我想知道是否有一个简单的命令来获取关于任何OpenSSL证书的重要信息,不管其类型如何。我想至少知道证书类型(X509、RSA、DSA)以及它是公钥还是私钥。查看我刚从pkcs12文件中提取的证书的内容,这两个文件都没有显式显示。

    2 回复  |  直到 8 年前
        1
  •  36
  •   caf    15 年前

    首先,您有一些术语问题:

    • X509标准定义了证书,而RSA和DSA是可以在这些证书中使用的两种公钥算法;
    • 证书用于保存公钥,而不是私钥。
    • pkcs 12是一个容器的标准,该容器可以保存X509客户端证书和相应的私钥,以及(可选)签署X509客户端证书的CA的X509证书。

    因此,如果您正在检查一个pkcs 12文件(通常扩展名为.p12),那么您已经知道:

    • 它至少包含一个包含公钥的X509客户端证书;以及
    • 它包含相应的私钥。

    您所不知道的只是那些证书和私钥是RSA还是DSA。您可以通过提取证书来检查这一点,然后检查它们:

    openssl pkcs12 -in mycert.p12 -clcerts -nokeys -out mycert.crt
    openssl x509 -in mycert.crt -text
    

    的文本输出 openssl x509 命令应包括 Subject Public Key 第节,其中包括一些字段,您可以查看它是RSA还是DSA密钥(以及密钥大小)。

        2
  •  0
  •   Community CDub    8 年前

    证书也可以限制为特定用途。

    例如,它可能受到限制,因此不能用作证书颁发机构。阅读更多内容 this StackOverflow post .