繁体   English   中英

OpenSSL RSA以.cer格式提取公钥

[英]OpenSSL RSA extract public key with .cer format

我正在使用openSSL创建RSA public and private key 我创建成功,并且输出的是2个键,格式为private_key.pempublic_key.pem

因此,要求公开密钥必须采用.cer extensionBase 64 format并以标头开头: -----BEGIN

我做了一些研究,但找不到将pem转换为cer

有任何想法吗? 谢谢。

P / S:这是我用来生成密钥的脚本:

openssl genrsa -out private_key.pem 2048
openssl rsa -in private_key.pem -outform PEM -pubout -out public_key.pem

更新资料

最终,我找到了解决方案,只针对需要它的人。

set OPENSSL_CONF=C:\Program Files (x86)\GnuWin32\share\openssl.cnf
openssl genrsa -out private_key.pem 2048 -sha256 -passout pass:abc123
openssl req -new -x509 -sha256 -key private_key.pem -out public_key.cer -days 3650

为了使您的公钥以标头开头:----- BEGIN,直接使用私钥生成base64证书。

openssl genrsa -out key.pem 2048
openssl req -new -x509 -days 1826 -key key.pem -out ca.crt

这将生成一个嵌入了相对公钥的自签名证书,有效期为5年。 或使用

openssl req -new -key key.pem -out cert.csr

生成证书签名请求并由Root对其进行签名。

PEM是一种规范性编码格式(请参阅RFC-7468 ),专门设计用于包含在邮件中,因此它仅使用基本字符集。 DER是使用二进制编码方案的另一种规范性编码格式。

CER 不是规范性的,它是一个文件扩展名,通常用于传达证书(或更少的是密钥)。

由于CER有时被用作包含DER编码的加密材料的文件的扩展名,因此人们滥用CER的首字母缩写并谈论CER编码。 但这没有意义。 最后,还有其他人谈论PEM编码材料的CER文件。

我做了一些研究,但找不到将pem转换为cer的方法。

您不会,这毫无意义:您创建密钥的方式使它们已经经过PEM编码。

因此,无论文件扩展名是什么,您唯一需要做的就是将以PEM编码的密钥文件转换为DER格式。

为此,请使用openssl:

openssl rsa -inform PEM -in private_key.pem -outform DER -out private_key.der
openssl rsa -pubin -inform PEM -in public_key.pem -outform DER -out public_key.der

暂无
暂无

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

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