8

我创建了一个我认为包含公钥 DER 文件的证书,但我现在需要 PEM 格式的公钥用于不同的平台。目的是使用相同的公钥。

在 iOS 中使用 RSA 加密创建它并使用 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

4

1 回答 1

19

假设您已经使用命令创建了 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
于 2015-03-14T20:21:19.217 回答