https 的加密过程?
单向认证(客户端无证书):
- 客户端:发送客户端SSL版本信息
- 服务器:服务端给客户端返回SSL版本、随机数等信息,以及服务器公钥
- 客户端:客户端校验服务端证书是否合法,合法继续,否则告警
- 客户端:客户端改善自己可支持的对称加密方案给服务端,供其选择
- 服务端:服务端选择加密程序高的加密方式
- 服务端:将选择好的加密方式以明文方式发送给客户端
- 客户端:收到加密方式后,产生随机码,作为对称加密密钥,使用服务端公钥进行加密后,发送给服务端
- 服务端:服务端使用私钥对加密信息进行解密,获得对称加密的密钥
数据信道:形成对称加密通道,确保通信安全
双向认证(客户端有证书):
- 客户端:发送客户端SSL版本信息
- 服务器:服务端给客户端返回SSL版本、随机数等信息,以及服务器公钥
- 客户端:客户端校验服务端证书是否合法,合法继续,否则告警
- 客户端:客户端校验通过后,将自己的证书及公钥发送至服务器端
- 服务端:对客户端证书进行校验,校验结束后获得客户公钥
- 客户端:客户端改善自己可支持的对称加密方案给服务端,供其选择
- 服务端:服务端选择加密程序高的加密方式
- 服务端:将选择好的加密方案[使用客户端公钥进行加密]后发送给客户端
- 客户端:收到加密方式后,使用私钥进行解密,产生随机码,作为对称加密密钥,使用服务端公钥进行加密后,发送给服务端
- 服务端:服务端使用私钥对加密信息进行解密,获得对称加密的密钥
- 数据信道:形成对称加密通道,确保通信安全