openssl genrsa -des3 -out ca.key 2048
#生成CA颁发机构的私钥 。不加-des3生成的ca.key 是没加密的私钥。
下边填写CA证书颁发机构的信息,和上边的解释一样,不再写了。参考上边
openssl req -new -x509 -key ca.key -out ca.crt -days 3650
#-x509格式 有效期是10年。
到这里CA的ca.crt和ca.key已经准备就绪。可以为其他服务签署证书了。
openssl genrsa -out server.key 2048
#注意这个server.key文件和上边的ca.key文件是不一样的。当然也可以使用同一个,但基本上正常人是不会这么用的。
openssl req -new -key server.key -out server.csr
下边就是请求者的信息,将会被记录到server.csr文件中。具体解释请参看上边,一样的
openssl x509 -req -days 3650 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt
有时我在网上看见有人竟然这样cat server.key server.crt > server.pem 生成证书,这个server.pem文件确实可以当做证书来使用,但是极为不安全的。做测试的时候可以用,但生产环境坚决不能使用。这可是很危险的事情,你这样做证书和把密码写在银行卡上的道理是一样的。
证书和秘钥生成结束,将server.crt和server.key拿给需要证书的服务并配置好即可。注意server.key文件的保密,切不可泄露。
总结:CA必须同时具有ca.crt——CA的自签证书、 ca.key——CA的私钥。 被签发的服务必须提供server.csr——签发请求文件、server.key——被签发服务的私钥。
证书需要私钥才能生成所以,现有*.key文件才会有*.crt或者*.csr文件.
原文:https://www.cnblogs.com/andy9468/p/10414371.html