我遇到了一个似乎无法解释的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?
答案 0 :(得分:1)
我发现以RSA格式生成密钥的唯一方法是首先使用
创建密钥文件openssl genrsa -out ./yourkeyfile.key 2048
然后使用该文件使用
创建CSRopenssl 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