我对证书和密钥不熟悉。
我已获得一个 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编码呢?
PEM格式是base64格式的证书。因此,“公钥”应该位于生成的“cert.pem”文件中(以及所有链证书)。您可以在文本编辑器中打开此文件来查看它。
如果您只需要公钥证书本身,您可以运行以下命令。
openssl pkcs12 -in cert.pfx -nokeys -clcerts -out public.pem
您可以通过查找 openssl 文档 查找所使用的参数来了解原因:
-clcerts
仅输出客户端证书(不输出CA证书)。
-nokeys
不会输出私钥。
-输出文件名
写入证书和私钥的文件名,标准 默认输出。它们都是以 PEM 格式编写的。
如果PFX中没有链证书,上述命令将输出与生成的cert.pem文件相同的pem文件。
这个这个:
openssl base64 -in <infile> -out <outfile>