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

l0b*_*0b0 25 openssl certificate

OpenSSL证书似乎没有任何标准的命名约定,所以我想知道是否有一个简单的命令来获取有关任何OpenSSL证书的重要信息,无论其类型如何.我想知道至少证书类型(x509,RSA,DSA)以及它是公钥还是私钥.查看我刚刚从PKCS12文件中提取的证书的内容,这些都没有明确显示.

caf*_*caf 39

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

  • 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
Run Code Online (Sandbox Code Playgroud)

openssl x509命令的文本输出应包括一个Subject Public Key部分,该部分将包含允许您查看它是RSA还是DSA密钥的字段(以及密钥大小).