如何利用OpenSSL生成自签名证书?
自签名证书就是指自建CA机构认证的证书
基本概念
- CA认证机构:有自己的证书,可以拿自己的证书给别人签名然后收钱,这个星球上的CA被几家说英语的人垄断了。在这里我们会虚拟出一个CA机构,然后用他来给自己的证书认证签名。
- 证书 :发送给客户端的证书,其中大部分是公钥。是一个包含自己网站的公钥、认证、签名等信息的文件。
- 私钥 :服务器留存的解密私钥
基本流程
- 搞一个虚拟的CA机构,生成一个证书
# 生成自签名CA证书私钥
openssl genrsa -out ca.key 2048
# 生成自签名CA证书申请文件
openssl req -new -key ca.key -out ca.csr
# 生成自签名CA证书
openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt
- 生成一个自己的密钥,然后填写证书认证申请,拿给上面的CA机构去签名,就得到了自签名证书
# 生成自签名证书私钥
openssl genrsa -out server.key 1024
# 生成自签名证书申请文件(注意这里的Common Name必须要主机名或者ip,其他信息应和CA证书保持一致)
openssl req -new -key server.key -out server.csr
# 使用CA证书签名,生成自签名证书
openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key
# 验证自签证书是否正常(可选)
openssl verify -CAfile ca.crt server.crt
- 经过上面两步我们就得到了三个文件:
- ca.crt:CA证书(root证书)
- server.key:客户端的私钥
- server.crt:客户端的证书(自签名证书)