建立一个信息安全通道,来保证数据传输的安全
确认网站的真实性。客户端必须避免中间人攻击,即除了真正的服务器,任何第三方都无法冒充服务器。
用户在浏览器里输入一个https网址,然后连接到服务端的默认的443端口
采用HTTPS协议的服务器必须要有一套数字证书(其实就是一对公钥和私钥)
这个证书其实就是公钥,包含了很多信息,如证书的颁发机构,过期时间等等。
这部分工作是有客户端的TLS来完成的,会验证公钥是否有效,比如颁发机构,过期时间等等。
传送的是用证书(**服务端公钥)**加密后的随机值(这个随机值里面所有客户端的密钥),让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密解密了。
服务端用私钥解密后,得到了客户端传过来的随机值(私钥),然后把内容通过该值进行对称加密,所谓对称加密就是,将信息和私钥通过某种算法混合在一起,这样除非知道私钥,不然无法获取内容,而正好客户端和服务端都知道这个私钥,所以只要加密算法够彪悍,私钥够复杂,数据就够安全。
这部分信息是服务端用私钥加密后的信息,可以在客户端被还原。
客户端用之前生成的私钥解密服务端传过来的信息,于是获取了解密后的内容。
HTTP使用TCP三次握手建立连接,客户端和服务器需要交换3个包。HTTPS除了TCP的三个包,还要加上ssl握手需要的9个包,所以一共是12个包。
ssl建立连接需要花费时间