Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OpenSSL RSA使用.cer格式提取公钥_Openssl_Ssl Certificate_Rsa_Cer_Public Key Exchange - Fatal编程技术网

OpenSSL RSA使用.cer格式提取公钥

OpenSSL RSA使用.cer格式提取公钥,openssl,ssl-certificate,rsa,cer,public-key-exchange,Openssl,Ssl Certificate,Rsa,Cer,Public Key Exchange,我正在使用openSSL创建RSA公钥和私钥。我创建了成功,输出是两个键,格式为private\u key.pem和public\u key.pem 因此,要求公钥必须是.cer扩展名,Base 64格式,并以头开始:----BEGIN 我做了一些研究,但找不到将pem转换为cer 有什么想法吗? 谢谢 p/S:下面是我用来生成密钥的脚本: openssl genrsa -out private_key.pem 2048 openssl rsa -in private_key.pem -outf

我正在使用
openSSL
创建
RSA
公钥和私钥
。我创建了成功,输出是两个键,格式为
private\u key.pem
public\u key.pem

因此,要求公钥必须是
.cer
扩展名
Base 64格式
,并以头开始:
----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

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

CER不是标准的,它是一个文件扩展名,通常用于传递证书(或者,不太常见的是密钥)

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

我做了一些研究,但没有找到将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

对于以头开始的公钥:--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用户签名。

Stack Overflow是一个用于编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参见帮助中心中的。也许或者会是一个更好的提问的地方。我认为这个问题的可能重复是“如何从密钥生成证书?”。关于CER作为证书和ASN.1数据的规范编码规则,存在着轻微的歧义(根据答案)。但我认为问题中有足够的线索表明他们是指证书。