从 X.509 证书中提取 PEM Public 密钥

Extract PEM Public Key from X.509 Certificate

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

我使用 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 密钥正在使用 (public_key.der) 并且无法更改它。但是我现在需要 public 密钥

的 PEM 版本
public_key.pem

如何通过这种方式将 DER 转换为 PEM?

注意:如果我使用以下方法创建了我的密钥对,事情就会很简单。我可以提取一个 public 密钥 PEM 文件:

openssl genrsa -out rsa.pem 1024 
openssl rsa -in rsa.pem -pubout

Public 以这种方式生成的 PEM 文件有效。 有没有可能我之前创建的(使用-x590命令)与rsa命令的输出完全不同?

假设您已经使用以下命令创建了 DER 格式的证书

openssl req -x509 -out certificate.der -outform der -new -newkey rsa:1024 -keyout private_key.pem -days 3650

然后可以使用命令

提取 PEM 格式的 public 密钥
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