当前位置: 首页 > article >正文

HTTPS(上)

对称加密:使用相同的秘钥加密和解密数据,加解密速度快,但不安全

非对称加密:使用公钥加密数据,私钥解密数据,安全性高,但加解密速度较慢

HTTPS 采用的是对称加密非对称加密结合的「混合加密」方式:

HTTP 默认端口号是 80,HTTPS 默认端口号是 443

HTTPS 在 TCP 三次握手之后,还需进行 TLS 的握手,才可传输密文

服务器在申请数字证书之前,需要自己生成一对密钥:一个公钥和一个私钥。这个过程通常在服务器上通过加密算法(如 RSA 或 ECDHE)完成。

  • 公钥:在数字证书中包含,供客户端使用。客户端可以利用这个公钥加密数据(如对称密钥),确保只有持有私钥的服务器能够解密。
  • 私钥:由服务器保密,绝不能与他人分享。它用于解密客户端发送的数据,也用于对服务器发送的数据进行数字签名。

  1. 申请数字证书

服务器向证书权威机构(CA)提交申请,提供其公钥及相关身份信息(如域名、公司信息等)。

  1. 信息摘要生成

服务器使用哈希算法(如 SHA-256)对其公钥和其他身份信息进行处理,生成一个信息摘要。这一摘要是原始信息的简洁表示。

  1. 数字签名生成

CA 使用其私钥对生成的信息摘要进行加密,形成数字签名。这个签名证明了该信息摘要的来源和完整性。

  1. 数字证书构建

原始信息(包括公钥和身份信息)与数字签名一起打包,形成数字证书。这个证书包含了所有必要的信息,以供客户端验证。

  1. 颁发证书

CA 将生成的数字证书颁发给服务器。服务器将其安装在网站上,以便客户端在建立 HTTPS 连接时使用。

  1. 客户端验证

客户端拿到服务端的数字证书,通过CA的公钥解密数字签名,得到第一份信息摘要,再通过同样的Hash算法对原始信息进行运算,得到第二份信息摘要,通过比较两份信息摘要,就知道这个数字证书可不可靠(因为是用CA公钥解密的)

CA链:

CA本身也有证书来表明自己的身份,这个验证又交给上一级来验证,然后又再有上一级验证······于是CA们形成了一根分级链条,链条根部就是操作系统/浏览器预置的顶级CA证书,相当于自动信任了他们


http://www.kler.cn/a/553518.html

相关文章:

  • 【Golang 面试题】每日 3 题(五十七)
  • “深入浅出”系列之杂谈篇:(3)Qt5和Qt6该学哪个?
  • 常用 Webpack Plugin 汇总
  • LangChain大模型应用开发:消息管理与聊天历史存储
  • 单细胞转录组画小提琴VlnPlot只显示需要类型细胞
  • 【Linux】文件系统:文件fd
  • Android系统开发 给system/app传包报错
  • 清华大学DeepSeek PPT第二版 Deepseek赋能职场应用
  • 1、云原生写在前面
  • 部署前端项目
  • Docker 容器安装 Dify的两种方法
  • windows Redis Insight 如何查看宝塔docker里的redis数据
  • 【Python】集合set详细讲解(语法、操作、集合运算、性能、使用场景)
  • Luckfox Pico Max运行RKNN-Toolkit2中的Yolov5 adb USB仿真
  • 算法练习——前缀和
  • jdk从1.7升级为1.8需要注意什么
  • SOME/IP--协议英文原文讲解8
  • nginx ngx_http_module(7) 指令详解
  • Java 面试笔记 - Java基础
  • 【拥抱AI】GPT Researcher的诞生