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

Certificate 如何从文件中确定证书类型,certificate,openssl,Certificate,Openssl,对于OpenSSL证书,似乎没有任何类型的标准命名约定,因此我想知道是否有一个简单的命令来获取有关任何OpenSSL证书的重要信息,而不考虑其类型。我想至少知道证书类型(x509、RSA、DSA)以及它是公钥还是私钥。查看我刚刚从PKCS12文件中提取的证书的内容,它们都没有显式显示。首先,您有一些术语问题: X509标准定义了证书,RSA和DSA是可用于这些证书的两种公钥算法 证书用于持有公钥,而不是私钥 PKCS#12是容器的标准,容器可以保存X509客户端证书和相应的私钥,以及(可选)签

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

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

  • 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
命令的文本输出应该包括一个
主题公钥
部分,该部分将包括一些字段,让您可以查看它是RSA密钥还是DSA密钥(以及密钥大小)。

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

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