HTTPS主要由有两部分组成:HTTP + SSL / TLS,也就是在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。
部署SSL证书后,HTTPS的工作原理:
① 客户端将它所支持的算法列表和一个用作产生密钥的随机数发送给服务器。
② 服务器从算法列表中选择一种加密算法,并将它和一份包含服务器公用密钥的证书发送给客户端,该证书还包含了用于认证目的的服务器标识,服务器同时还提供了一个用作产生密钥的随机数。
③ 客户端对服务器的证书进行验证,并抽取服务器的公用密钥;然后,再产生一个称作pre_master_secret的随机密码串,并使用服务器的公用密钥对其进行加密,并将加密后的信息发送给服务器。
④ 客户端与服务器端根据pre_master_secret以及客户端与服务器的随机数值,独立计算出加密和MAC密钥。
⑤ 客户端将所有握手消息的MAC值发送给服务器。服务器将所有握手消息的MAC值发送给客户端。