如何从.crt和.pem文件中获取-----BEGIN CERTIFICATE-----的RSA密钥?

11

我有一个 .crt 和一个 .pem 文件

-----BEGIN CERTIFICATE-----

MIIFSDCCBDCg........................................

-----END CERTIFICATE-----

我想从这个文件中获得RSA密钥。

是否有人知道我们如何做到这一点。

我已经一个接一个地使用了以下命令。

openssl rsa -in XXX.crt -out input1.der -outform DER
openssl rsa -in input1.der -inform DER -out key.pem -outform PEM

但是,它报错了:

无法加载私钥 140331982231200:error:0906D06C:PEM
routines:PEM_read_bio:no start line:pem_lib.c:703:Expecting: ANY PRIVATE KEY

我尝试了不同的命令,但仍然出现上述错误。

3个回答

15
-----BEGIN CERTIFICATE-----

MIIFSDCCBDCg........................................

-----END CERTIFICATE-----

这是一个PEM格式的证书,它是公钥的包装器。证书应该是公开的且可分发的,但私钥(正如其名称所示)应该保密。因此,证书永远不可能包含私钥。

你提到,你也有一个“.pem”文件。它的内容是什么?是否以-----BEGIN RSA PRIVATE KEY-----开头?如果是,那么它就是你的私钥。

你正在尝试执行以下命令: openssl rsa 它需要输入私钥,但你提供的是证书。因此导致了错误。


5

从证书中无法获取私钥,因为私钥不在证书中,除非PEM文件中包含它,否则无法从PEM文件中获取私钥。


-1
这是一个以pem格式包装的证书,它是公钥的封装。证书应该是公开的并且可以分发,但是私钥(顾名思义)应该保密。因此,证书永远不会包含私钥。
你无法从证书中获取私钥,因为私钥不在证书中,除非PEM文件中包含它,但这并非必然如此。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接