从X.509证书中提取PEM公钥

时间:2015-03-14 13:05:16

标签: encryption openssl rsa pem der

我已经创建了我认为包含公钥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命令的输出完全不同?

1 个答案:

答案 0 :(得分:7)

假设您已使用命令

创建了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