生成证书和秘钥
简单生成的方法:
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
===============================
以下方法复杂,又可能报错,不推荐使用。
===============================
1、CA的私钥ca.key的生成
openssl genrsa -des3 -out ca.key 2048
#生成CA颁发机构的私钥 。不加-des3生成的ca.key 是没加密的私钥。
2、CA的证书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