私钥是识别您的秘密,任何对您特定身份的签名或验证都需要私钥。因此,任何将生成某些源自您的身份的操作的操作都将需要它。
此外,您不是在此处创建证书,而是在创建证书签名请求,您将提交给另一方,然后由对方生成证书以授予您访问权限。
如果要创建自签名 x509 证书,则应添加 -x509 参数,如下所示:
openssl req -x509 -nodes -days 5000 -newkey rsa:2048 -keyout mypem.key -out mycert.crt
- 哪里天是证书的有效期(5000 实际上是无限期的)
- 节点跳过密码业务(跳过测试,省略任何真实的东西)
- 并输出密钥和证书以供以后使用
@bartonjs 是正确的,私钥到公钥是可能的,公钥到私钥不是。这就是为什么您可以分发公钥而没有人可以使用它来冒充您。私钥必须始终保密。
如果您打算充当希望访问服务器的客户端以及授予请求的服务器,您首先需要在服务器上设置您的证书颁发机构和服务器的证书。
Someone on stack overflow 对此已经有了很好的回答:
但是基本的 juiste 是,你设置了服务器的 CA 和 crt,然后你在服务器上做这样的事情:
openssl x509 -req -days 30 -in request.csr -CA ca.crt -CAcreateserial -CAkey ca.key -out signedrequest.crt
您将“signedrequest.crt”交还给请求它的人。
我忘了提,在我上面的命令中去掉 -nodes,它会跳过密码过程。对测试有利,对安全不利。仅供参考。