先上图

这几天对HTTPS稍微深入了解一下,简单总结一下,上面的流程不是协议实现流程,只是概要的理解流程,方便对HTTPS的理解,具体问题的定位的时候可以大概明白在哪里出了问题,详细还要看协议。
HTTPS是综合了对称加密和非对称加密的通信协议。为什么搞这么复杂呢,是因为非对称加密具有良好的保密性,但是速度也超级慢,而对称加密,安全性低,但速度超级快,两者之间的速度差距近百倍。
所以,HTTPS就用非对称加密的方式来传输对称加密用的KEY, 这样既满足安全要求又满足了速度要求。
但在用非对称加密协商KEY的时候,又要担心“中间人”劫持,就是中间人伪装服务器,所以需要确认我们通信的服务器就是我们想要的服务器,也就是说需要确认服务器是正确的人,这个时候就用到了证书这个概念,证书是认证中心(CA)颁发的,服务器的证书是需要去CA中心申请,然后CA颁发。客户端通过获取CA的公钥就可以判断证书是否合法(合法意味着访问服务是正确的)。而CA的公钥可以简单理解为是预置在客户端(比如操作系统、浏览器)的,因为其实证书涉及更附在的逐层认证(具体没有研究),所以图中也没有体现。
之前关于对称和非对称加密的简单介绍: