HTTPS = HTTP + TLS/SSL
- 客户端请求服务端域名,包含内容:
- 客户端生成的随机数r0
- 支持的加密通信协议版本,如TLS 1.0
- 支持的加密算法,如RSA
- 支持的压缩算法
- 服务端返回公钥,包含内容:
- 服务端生成的随机数r1
- 确认协议版本
- 确认加密算法
- 服务器证书
- 客户端验证服务器证书
- 验证:可信机构颁布、域名一致、是否过期等
- 验证完后从证书中取出公钥
- 客户端握手结束,包含内容:
- 客户端生成的随机数r2,用服务器公钥加密防止窃听
- 编码改变通知,表示后续交互的加密方法及密钥
- 客户端握手结束通知,对之前发送的所有内容hash
- 服务端回应
- 根据r0, r1, 及用私钥解密出的r2计算会话密钥
- 编码改变通知,确认加密方法及密钥
- 服务端握手结束通知,对之前发送的所有内容hash