繁体   English   中英

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

[英]How to get public key in .cer or .crt formats

我使用 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 证书导出向导导出公钥,如此处给出的说明

它也没有用。 当在记事本++中打开时,我无法启用导出密钥和最终输出的选项是垃圾。

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

任何帮助都深表感谢。

由于.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

不过,您想要那种特定的格式似乎很奇怪。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM