#什么是https https = http + ssl/tls协议:在https数据传输的过程中,需要用ssl/tls对数据进行加密和解密,然后用http对加密后的数据进行传输。
#秘钥相关概念 对称加密:信息的发送方和接收方使用同一个密钥去加密和解密数据。对称加密的特点是算法公开、加密和解密速度快 非对称加密:使用一对密钥,即公钥和私钥,且二者成对出现。私钥被自己保存,不能对外泄露。公钥指的是公共的密钥,任何人都可以获得该密钥。用公钥或私钥中的任何一个进行加密,用另一个进行解密。
#具体流程 可以分为两个阶段:握手阶段和数据传输阶段
握手阶段
-
客户端开始请求:发送自身支持的ssl版本信息、加密算法、一个随机数(random_c)
-
服务器收到请求:响应确认ssl版本、确认加密算法、服务器公钥(pubkey_s)、一个随机数(random_s)
-
客户端收到了服务器的公钥,开始验证:验证通过后:客户端会根据前面的random_c和random_s生成一个随机数pre-master secret,然后使用pubkey_s进行加密,发给服务端,同时会根据random_c、random_s、pre-master secret通过一定的算法得出session Key
-
服务端通过私钥来解密,得到pre-master secret,然后也通过random_c、random_s、pre-master secret通过一定的算法得出session Key
数据传输阶段 采用对称加密,通过上个阶段产生的sessionKey进行加密和解密