说一下https 的加密流程(面试题)
想一下: 地下党 和 领导人传送情报的场景: 领导人给 地下党 一个 密码箱, 地下党 会给把文件放到密码箱里,然后上锁, 锁的密码只有领导人知道
首先服务端需要购买证书,
然后浏览器发起请求到服务器,服务端会给浏览器返回一个公钥, 浏览器会验证这个证书的合法性, 如果是不合法的会提示一个警告,如果合法
会在浏览器 生成一个随机数 假如说是R ,然后浏览器会拿着从服务端获取的公钥 对R 进行加密。
然后 传输给服务端,服务端会拿着自己的私钥, 对用公钥加密的R 进行解密,
之后 服务端通过 R 对数据加密 给我们的浏览器,浏览器 可以用自己的R 进行解密。
然后 客户端和服务端 通过对称式加密传输所有内容。