openssl从p12提取公钥、私钥和证书

时间:2025-02-16 08:13:37

OpenSSL 可以很方便地从.p12PKCS#12)文件中提取公钥、私钥和证书,并以适当的格式保存它们,方便进一步使用。

提取私钥

  • .p12 文件中提取私钥,并将其保存到一个 .key 文件中
openssl pkcs12 -in yourfile.p12 -nocerts -nodes -out 
  • -in yourfile.p12: 指定要提取的 .p12 文件。
  • -nocerts: 不提取证书,仅提取私钥。
  • -nodes: 私钥不进行加密(即无密码保护)。
  • -out : 输出私钥到 文件。

提取公钥

  • 提取私钥之后,可以通过私钥提取公钥
openssl rsa -in  -pubout -out 
  • -in : 指定刚才提取的私钥文件。
  • -pubout: 表示提取公钥。
  • -out : 输出公钥到 文件。

提取证书

  • 从 .p12 文件中提取证书,并将其保存到一个 .crt 文件中
openssl pkcs12 -in yourfile.p12 -clcerts -nokeys -out 
  • -clcerts: 仅提取用户证书,不包括 CA 证书。
  • -nokeys: 不提取私钥。
  • -out : 输出证书到 文件。

提取 CA 证书

  • 如果 .p12 文件中包含 CA 证书,可以使用以下命令提取 CA 证书
openssl pkcs12 -in yourfile.p12 -cacerts -nokeys -chain -out 
  • -cacerts: 仅提取 CA 证书。
  • -chain: 包括整个证书链。
  • -nokeys: 不提取私钥。
  • -out : 输出 CA 证书到 文件。

总结

  • 私钥:用 openssl pkcs12 -nocerts -nodes 提取并保存。
  • 公钥:先提取私钥,然后用 openssl rsa -pubout 提取公钥。
  • 证书:用 openssl pkcs12 -clcerts -nokeys 提取并保存。