使用 PEM 格式的密钥创建 CSR

Ade*_*sso 2 openssl rsa sha pem der

我遇到了一个我似乎无法解释的 CSR 生成问题,并且想知道是否有人可以帮助我执行命令,或者告诉我我正在生成什么。

我认为我正在生成 PEM 格式的 CRT 证书,但似乎我的密钥不是 PEM 格式!?

这就是我所做的,以及我得到的。我创建了一个 CSR:

openssl req -nodes -new -newkey rsa:2048 -sha256 -out test.csr

这会生成 2 个文件: privkey.pemtest.csr

现在,当我尝试更新某些服务器时,他们抱怨我的私钥不是 PEM 格式。nginx 和 apache 似乎对我的密钥很满意。

当我使用以下方法转换密钥时:

openssl rsa -in privkey.pem -out privkey.rsa.pem

有用 !?!

vimdiff 直观地显示了文件中的差异,可以看到不仅标题不同,而且内容也发生了变化(前 4 个字符之后)

因此我的问题

即使我指定不在创建行中使用 DER,密钥是否以 DER-PEM 格式创建?

Ade*_*sso 6

我发现生成 RSA 格式密钥的唯一方法是首先使用以下命令创建密钥文件

openssl genrsa -out ./yourkeyfile.key 2048
Run Code Online (Sandbox Code Playgroud)

然后使用该文件创建 CSR

openssl req -new -sha256 -key yourkeyfile.key -out yourcsrfile.csr
Run Code Online (Sandbox Code Playgroud)

如果您使用一行命令,密钥文件将以 DER 格式创建。

openssl req -new -sha256 -newkey rsa:2048 -nodes -keyout yourkeyfile.key -out yourcsrfile.csr
Run Code Online (Sandbox Code Playgroud)