HTTPS协议分为两个阶段:证书验证、数据传输。
证书验证阶段:
- 因为密钥需要在网络中传播,所以使用非对称加密
- 为了避免传播中的公钥被篡改,所以使用CA机构与安全证书
- 客户端与服务端的操作系统同时内置了CA机构
- 服务端向CA机构申请包含公钥与数字签名的安全证书,并进行配置
- 客户端向服务端请求获取安全证书,并借助CA机构验证数字签名、解析出公钥
- 因为非对称加密效率低,所以只用于4次握手阶段
- 客户端与服务端之间使用SSL/TLS协议进行4次握手,共同协商生成对称加密的私钥,避免私钥在网络上传输
数据传输阶段:
- 使用对称加密