首页 > 解决方案 > 将 pfx 文件转换为 base46 编码的公钥 PEM 文件

问题描述

我是证书和密钥的新手。

我得到了一个 pfx 文件,要求是在 base64 编码的 PEM 文件中提取公钥。

我使用以下命令提取私钥

openssl pkcs12 -in certname.pfx -nocerts -out key.pem -nodes

我使用以下命令提取证书

 openssl pkcs12 -in certname.pfx -nokeys -out cert.pem

公共证书使用

openssl pkcs12 -in certname.pfx -nodes -clcerts -nokeys | openssl x509 -out public.crt

但是我如何获得公钥?以及如何编码是 base64 ?

标签: opensslcertificateclient-certificatespfx

解决方案


PEM格式是 base64 格式的证书。所以“公共”密钥应该在生成的“cert.pem”文件中(以及所有链证书)。您可以在文本编辑器中打开此文件以查看它。

如果您只需要公钥证书本身,则可以运行以下命令。

openssl pkcs12 -in cert.pfx -nokeys -clcerts -out public.pem

您可以通过查找所使用参数的openssl 文档来了解原因:

-clcerts

仅输出客户端证书(不是 CA 证书)。

-nokeys

不会输出任何私钥。

-out 文件名

将证书和私钥写入的文件名,默认为标准输出。它们都是以 PEM 格式编写的。

如果 PFX 中没有链式证书,则上述命令将输出与生成的 cert.pem 文件相同的 pem 文件。


推荐阅读