如何从.cer中提取RSA公钥并使用OpenSSL将其存储在.pem中?

Ste*_*son 13 encryption openssl rsa pem cer

我需要从*.cer文件中提取公钥(RSA).我想提取密钥并将其存储在一个.pem文件中,这样我就可以使用它的值来使用jsencrypt加密值.

以下命令将a转换.cer.pem:

openssl x509 -inform der -in certificate.cer -out certificate.pem
Run Code Online (Sandbox Code Playgroud)

但它不会生成带有公钥的文件,而是生成带有文件内容的*.cer文件.

-----BEGIN CERTIFICATE-----
MIICPDCCAamgAwIBAg............
*lots of extra contents*
-----END CERTIFICATE-----
Run Code Online (Sandbox Code Playgroud)

我应该使用什么命令来提取公钥并将其存储在.pem文件中?

Ste*_*son 35

使用此命令,我能够使用.pem公钥的内容生成.

openssl x509 -inform der -in certificate.cer -pubkey -noout > certificate_publickey.pem
Run Code Online (Sandbox Code Playgroud)

哪个产生:

-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCsM+whXrxmbCkPfkwY2EehYpIp
*blah blah blah blah*
-----END PUBLIC KEY-----
Run Code Online (Sandbox Code Playgroud)

  • 对于其他任何尝试此操作的人来说,`-inform DER`对我来说不起作用,但`-inform PEM`有效. (11认同)
  • 谢谢.只是一个更正:对于.cer文件输入,`inform`参数应该是`der` (4认同)
  • 我非常肯定我在答案中所写的内容是正确的并且对我有用......我确实使用了`-inform pem`.虽然`-inform der`也可以,但那很酷. (2认同)