如何获取.cer或.crt格式的公钥

时间:2018-05-09 16:34:18

标签: ssl openssl ssl-certificate

我使用OpenSSL创建了自签名SSL证书,如下所示:

openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365

这为我提供了.pem文件中的证书和私钥。我需要以.cer.crt格式向我的客户提供我的公钥。 有没有办法以.cer / .crt格式获取公钥?

我已经尝试过:

1。以.pem格式生成公钥并尝试将其转换为.cer.crt [没有工作]

.pem文件中提取公钥[工作正常]:

`openssl x509 -pubkey -noout -in signer-cert.pem  > signer-public-key-test.pem`

.pem格式转换为.cer格式 openssl x509 -inform PEM -in signer-public-key-test.pem -outform DER -out signer-public-key-test.cer 我收到这个错误:

unable to load certificate
140067363030680:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:701:Expecting: TRUSTED CERTIFICATE

2。将我的证书转换为.cer(我做得很好)并尝试使用Windows证书导出向导导出公钥作为给出的说明here

它也没有用。在notepad ++中打开时,我无法启用导出键和最终输出的选项。垃圾。

所以我的问题是,有没有办法从头开始生成证书并在.cer.crt文件中使用公钥。或者以.pem格式生成证书,然后将公钥提取到.crt.cer

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

由于.cer.crt通常意味着" DER或PEM-DER X.509证书"我不知道你用这种格式的公钥是什么意思。

如果您的意思是想要一个表示公钥的DER编码的SubjectPublicKeyInfo,那么您的管道的第二阶段将是

openssl asn1parse -noout -out some.file

您可以使用

删除中间件
openssl x509 -in signer-cert.pem -noout -pubkey | 
    openssl asn1parse -noout -out signer-public-key-test.der

(添加了新行以删除滚动条)

或者,完全跳过证书中间人:

openssl rsa -in key.pem -pubout -outform der -out signer-public-key-test.der

但是,你想要那种特殊格式似乎很奇怪。