HTTPS连接过程
https协议就是http+ssl/tls协议,如下图所示为其连接过程:
HTTPS连接的整个工程如下:
- https请求:客户端向服务端发送https请求;
- 生成公钥和私钥:服务端收到请求之后,生成公钥和私钥。公钥相当于是锁,私钥相当于是钥匙,只有私钥才能够打开公钥锁住的内容;
- 返回公钥:服务端将公钥(证书)返回给客户端,公钥里面包含有很多信息,比如证书的颁发机构、过期时间等等;
- 客户端验证公钥:客户端收到公钥之后,首先会验证其是否有效,如颁发机构或者过期时间等,如果发现有问题就会抛出异常,提示证书存在问题。如果没有问题,那么就生成一个随机值,作为客户端的密钥,然后用服务端的公钥加密;
- 发送客户端密钥:客户端用服务端的公钥加密密钥,然后发送给服务端。
- 服务端收取密钥,对称加密内容:服务端收到经过加密的密钥,然后用私钥将其解密,得到客户端的密钥,然后服务端把要传输的内容和客户端的密钥进行对称加密,这样除非知道密钥,否则无法知道传输的内容。
- 加密传输:服务端将经过加密的内容传输给客户端。
- 获取加密内容并解密:客户端获取加密内容后,用之前生成的密钥对其进行解密&