生成自签名证书:生成证书和秘钥

生成证书和秘钥

简单生成的方法:

1、mkdir  /certs

2、cd  /certs

3、生成自签名证书

sudo openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout registry.key -out registry.crt

录入证书信息:
CN

Guangdong

shenzhen

albb

Dev

10.1.2.3

123456@qq.com

4、添加Linux系统对自签名证书的信任

cat ./registry.crt >> /etc/pki/tls/certs/ca-bundle.crt

 

===============================

以下方法复杂,又可能报错,不推荐使用。

===============================

 

1CA的私钥ca.key的生成 

 

openssl  genrsa  -des3  -out  ca.key  2048  

#生成CA颁发机构的私钥 。不加-des3生成的ca.key 是没加密的私钥。

 

 

 

 

2CA的证书ca.crt的生成。用来签署server.csr请求文件。

 

下边填写CA证书颁发机构的信息,和上边的解释一样,不再写了。参考上边

 

openssl  req  -new  -x509  -key  ca.key  -out  ca.crt  -days  3650   

#-x509格式 有效期是10年。

 

 

 

到这里CA的ca.crt和ca.key已经准备就绪。可以为其他服务签署证书了。

 

 

3生成签发请求文件server.csr文件先生成server.key,因为server.crt需要server.key来生成

 

openssl  genrsa  -out  server.key  2048

#注意这个server.key文件和上边的ca.key文件是不一样的。当然也可以使用同一个,但基本上正常人是不会这么用的。

 

 

 

4生成server.csr请求文件。

 

openssl  req  -new  -key  server.key  -out  server.csr

 

下边就是请求者的信息,将会被记录到server.csr文件中。具体解释请参看上边,一样的

 

 

 

 

5下面签署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文件.

 

查看证书内容:

openssl x509 -noout -text -in server.crt

 

延伸:

那些证书相关的玩意儿(SSL,X.509,PEM,DER,CRT,CER,KEY,CSR,P12等)

http://www.cnblogs.com/guogangj/p/4118605.html

 

posted @ 2019-02-21 18:08  安迪9468  阅读(1631)  评论(0编辑  收藏  举报