使用PEM格式化密钥创建CSR

时间:2017-06-12 12:22:50

标签: openssl rsa sha pem der

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

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

这是我做的,也是我得到的。 我创建了一个CSR:

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

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

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

然后我将密钥转换为:

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

它有效!?!

vimdiff在视觉上向我展示了文件的差异,可以看出不仅标题不同,而且内容也被更改(在前4个字符之后)

因此我的问题

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

1 个答案:

答案 0 :(得分:1)

我发现以RSA格式生成密钥的唯一方法是首先使用

创建密钥文件
openssl genrsa -out ./yourkeyfile.key 2048

然后使用该文件使用

创建CSR
openssl req -new -sha256 -key yourkeyfile.key -out yourcsrfile.csr

如果使用one line命令,则以DER格式创建密钥文件。

openssl req -new -sha256 -newkey rsa:2048 -nodes -keyout yourkeyfile.key -out yourcsrfile.csr