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

时间:2009-11-12 13:29:34

标签: certificate openssl

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

2 个答案:

答案 0 :(得分:38)

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

  • 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密钥的字段(以及密钥大小)。

答案 1 :(得分:0)

证书也可以限制在某些用途。

例如,它可能受到限制,因此无法用作证书颁发机构。另请参阅this StackOverflow post