从 X.509 证书中提取 PEM 公钥
Posted
技术标签:
【中文标题】从 X.509 证书中提取 PEM 公钥【英文标题】:Extract PEM Public Key from X.509 Certificate 【发布时间】:2015-05-16 22:34:30 【问题描述】:我创建了一个我认为包含公钥 DER 文件的证书,但我现在需要 PEM 格式的公钥用于不同的平台。目的是使用相同的公钥。
我使用RSA Encryption in ios and Decrypt It Using php 创建它:
openssl req -x509 -out public_key.der -outform der -new -newkey rsa:1024 -keyout private_key.pem -days 3650
我有一个正在使用的现有公钥 (public_key.der),无法更改。但是我现在需要一个 PEM 版本的公钥
public_key.pem
如何以这种方式从 DER 转换为 PEM?
注意:如果我使用以下方法创建了我的密钥对,事情会很容易。我可以提取一个公钥 PEM 文件:
openssl genrsa -out rsa.pem 1024
openssl rsa -in rsa.pem -pubout
以这种方式生成的公共 PEM 文件有效。 有没有可能我之前创建的(使用-x590
命令)与rsa
命令的输出完全不同?
【问题讨论】:
Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Super User 或Unix & Linux Stack Exchange 会是一个更好的提问地方。另见Where do I post questions about Dev Ops? 【参考方案1】:假设您已经使用命令创建了 DER 格式的证书
openssl req -x509 -out certificate.der -outform der -new -newkey rsa:1024 -keyout private_key.pem -days 3650
然后可以通过命令提取PEM格式的公钥
openssl x509 -inform der -in certificate.der -pubkey -noout > public_key.pem
-inform
定义证书格式(默认为 PEM),-noout
禁止输出,但请求的 -pubkey
除外。
与PEM格式的证书相同的操作:
openssl x509 -in certificate.pem -pubkey -noout > public_key.pem
【讨论】:
以上是关于从 X.509 证书中提取 PEM 公钥的主要内容,如果未能解决你的问题,请参考以下文章