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