在linux上生成证书,需要openssl。
HTTPS证书验证流程(极简化版)
1.客户端向服务端请求证书(server.crt)
2.服务端下发证书(server.crt)
3.客户端用预制的受信任机构的证书(ca.crt)来验证服务端下发的证书(server.crt)是否合法,并且还会校验下发下来的证书里的域名与要请求的域名是否一致
【以下步骤开启双向验证后才会触发】
4. 客户端选择一个由受信任的机构(ca.crt)颁发的证书(client.crt)发送给服务端
5.服务端用预制的受信任机构的证书(ca.crt)来验证客户端传来的证书(client.crt)是否合法
以下是证书生成步骤及说明:
1、------------------------CA证书-------------------------------
1. 创建根证书密钥文件(自己做CA)ca.key:
openssl genrsa -aes256 -out ca.key 2048
#去除密码
openssl rsa -in ca.key -out ca.key
2. 创建根证书的申请文件ca.csr:
openssl req -new -sha256 -key ca.key -out ca.csr
3. 创建一个自当前日期起为期十年的根证书ca.crt【用来签名其它证书,并配置在客户端信任列表,如果开启双向验证,也需要配置在服务端】:
openssl x509 -req -da