如何确定我的证书是否包含私钥?

How do I identify if my certificate contains private key?

根据 the answer to this server-fault question 几乎所有证书文件格式都可以包含私钥和 public 密钥,因此我如何识别证书是否包含私钥?

这很重要,因为我不想在不知不觉中将私钥发送到远程客户端。

以下link的结构:

  • .csr。只有 public 键 pemder 格式

  • .pem。密钥 and/or 证书。寻找 -----BEGIN PRIVATE KEY---------BEGIN RSA PRIVATE KEY----------BEGIN ENCRYPTED PRIVATE KEY-----

  • .key pem 格式的键

  • .pkcs12 .pfx .p12 密钥 and/or 证书。使用 openssl pkcs12 -info -nocerts -in keystore.p12

  • 列出键
  • .jks 密钥 and/or 证书。 Java具体格式。

  • .der pem 没有base64编码的内容。在 openssl x509 -inform DER -in cert.der

  • 中寻找 KEY
  • .cert .cer .crt 密钥 and/or 证书。内容可以是pemder

  • .p7b。只有证书

  • .crl。没有钥匙