HTTP 通信的缺点
- 通信使用明文,内容可能被窃听(重要密码泄露)
- 不验证通信方身份,有可能遭遇伪装(跨站点请求伪造)
- 无法证明报文的完整性,有可能已遭篡改(运营商劫持)
HTTPS 握手过程
客户端发起 HTTPS 请求
用户在浏览器里输入一个 https 网址,与服务器建立 ssl 连接
服务端响应
服务器收到客户端请求后,确认加密通信协议版本是否一致,如果版本一致则返回服务器证书,否则关闭加密通信
客户端解析证书
客户端收到网站证书后会检查证书的颁发机构以及过期时间, 如果没有问题就随机产生一个秘钥
客户端传输秘钥给服务端
客户端利用公钥将秘钥加密, 并传输给服务端
服务端解密
服务端利用自己的私钥解密出秘钥
完成加密过程
之后服务器与客户端使用秘钥加密传输
原理图如下
<img src="https://noxussj.top:3000/57/1.png"></img>
文章的内容/灵感都从下方内容中借鉴
- 【持续维护/更新 500+前端面试题/笔记】https://github.com/noxussj/In...
- 【大数据可视化图表插件】https://www.npmjs.com/package...
- 【利用 THREE.JS 实现 3D 城市建模(珠海市)】https://3d.noxussj.top/
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。