HTTPS验证流程

http通常是直接和TCP进行通信的,而https中http是和SSL通信,再由SSL与TCP进行通信。SSL协议是一个介于应用层和传输层之间的一个安全协议。

1.对称加密与非对称加密

  1. 对称加密: 加密和解密方式都使用同一个私钥和公开的加密算法,优点是加密速度快,缺点是密钥需要共享。私钥共享就会使得其安全性受到威胁。
  2. 非对称加密: 非对称加密指的是加密与解密双方使用一对公钥和私钥相配合,加密方使用公钥加密,解密方使用私钥解密。或者反过来,解密方使用公钥加密,加密方使用私钥解密。优点是安全性高,缺点是加密速度慢。

而https则使用两种加密方式混合使用,即SSL协议中使用的对称加密和非对称加密。

  • 使用非对称加密方式安全的交换所需要的密钥。
  • 确保交换的密钥安全之后,放弃非对称加密,使用对称加密进行通信。

2. https的通信流程

  1. 客户端发起https请求,请求连接到服务器的443端口。
  2. 服务器需要提前保存已经申请好的ssl证书,这个证书其实就是一对公钥和私钥。服务器将证书发送给客户端作为非对称加密的公钥。
  3. 客户端的TLS来解析证书,验证公钥是否有效,如是否是受信任的机构颁发,是否已过期。如果发现异常,就会弹出一个警示框提示证书有问题。如果公钥合格,则会生成一个随机值,并使用公钥将这个随机值加密,这个值就是后续使用对称加密的密钥。至此,https的第一段http请求结束。
  4. 在将随机值加密之后,客户端会发起第二段http请求,将加密后的随机值发送给服务端。服务端拿到随机值之后使用之前的私钥对其进行解密,得到了随机值的原文,作为后续对称加密的密钥。
  5. 随后服务器通过随机值密钥来将所请求的数据进行对称加密,然后发送给客户端。客户端拿到加密数据之后,使用随机值密钥进行解密。至此,https的通信结束。

所以https统计主要分为两个阶段:

  • .证书验证阶段:
  • 浏览器发送请求
  • 服务器返回证书
  • 客户端验证证书是否有效
  1. 数据传输阶段:
  • 证书合法则生成随机值并加密
  • 浏览器发送http请求将随机值发送给服务器
  • 服务器使用私钥解密随机值并使用随机值加密数据返回
  • 浏览器接收到数据并使用随机值解密
相关推荐
IT_陈寒10 分钟前
JavaScript闭包的这个坑,我居然今天才爬出来
前端·人工智能·后端
可乐鸡翅yeah_11 分钟前
hls.js 切换多个视频源,新手开发常见踩坑
开发语言·前端·javascript·ios·ffmpeg·音视频·safari
葡萄城技术团队15 分钟前
复制走的是数字,留下的是身份:Web 表格里被忽视的数据断层
前端
kyriewen18 分钟前
我实测了前端日期的 5 个坑:差 8 小时只是开始
前端·javascript·程序员
测试运维日常笔记24 分钟前
大模型应用专项测试指南:从 Prompt、RAG 到 Agent 的完整链路
前端·prompt
计算机魔术师1 小时前
没有人告诉他们要这么做——AI 智能体自己学会了"组团"越狱
前端
a努力。1 小时前
LangChain Agent消息链路全解析
java·前端·javascript
今年下半年1 小时前
【前端】ant-design-vue 表格「行、列都动态」的处理方案
前端·javascript·vue.js
szarron2 小时前
VNA6 便携式矢量网络分析仪|1MHz‑6.3GHz 手持 VNA 真实应用场景全解析
前端·嵌入式硬件·信息可视化·数据挖掘·数据分析
Reisentyan2 小时前
B站首页,点击视频卡片之后首页自动刷新的问题
前端