openssl - 将 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 ?
解决方案
PEM格式是 base64 格式的证书。所以“公共”密钥应该在生成的“cert.pem”文件中(以及所有链证书)。您可以在文本编辑器中打开此文件以查看它。
如果您只需要公钥证书本身,则可以运行以下命令。
openssl pkcs12 -in cert.pfx -nokeys -clcerts -out public.pem
您可以通过查找所使用参数的openssl 文档来了解原因:
-clcerts
仅输出客户端证书(不是 CA 证书)。
-nokeys
不会输出任何私钥。
-out 文件名
将证书和私钥写入的文件名,默认为标准输出。它们都是以 PEM 格式编写的。
如果 PFX 中没有链式证书,则上述命令将输出与生成的 cert.pem 文件相同的 pem 文件。
推荐阅读
- php - 如何标准化 Laravel 中的一些 SQL 查询?
- json - Jolt Spec - 如何将元素插入数组
- c - 从函数地址获取调用者函数名
- java - 根据它们在网站上的显示方式对数组列表中的对象进行排序?
- android - dp(与密度无关的像素)是物理尺寸吗?
- junit5 - @BeforeAll 方法为非静态
- machine-learning - 深度学习中的“投影”是什么意思?
- node.js - 你可以从 nodejs 启动电子应用程序并让它来回通信吗?
- loops - 如何防止我的 ARM 汇编程序中出现无限循环?
- ios - 在编辑方案中选择应用程序语言时不能选择“更多”