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

《HTTPS 的灵魂:加密、认证与数字证书》

🔐 《HTTPS 的灵魂:加密、认证与数字证书》

这一篇是整个系列的“核心灵魂篇”——
HTTP 到底怎么变安全的?
为什么加个 “S” 就能防止中间人窃听?
“证书” 又是什么?“加密” 到底是怎么实现的?

这篇文章会用通俗语言 + 实际案例 + 图解逻辑带你彻底搞懂 HTTPS。


🔐《HTTPS 的灵魂:加密、认证与数字证书》


一、为什么需要 HTTPS?

我们先看个简单的例子 👇

小明在网吧登录自己的邮箱:

POST /login HTTP/1.1
Host: mail.example.com
Content-Type: application/x-www-form-urlencodedusername=xiaoming&password=123456

如果使用的是 HTTP 协议,这些内容是 明文 传输的。
也就是说,任何连在同一 Wi-Fi 的人,都能用抓包工具(如 Wireshark)看到你的用户名和密码。

😱 那画面太刺激。

于是,HTTPS 出场了。

它的目标只有一个:
让传输的每一比特都无法被窃听、篡改或伪造。


二、HTTPS 究竟是什么?

很多人以为 HTTPS 是“加密版 HTTP”,但其实更准确地说:

🔒 HTTPS = HTTP + TLS(或 SSL)

它并不是新协议,而是在 HTTP 与 TCP 之间加了一层 安全加密层(TLS)

也就是说:

应用层:HTTP
传输层:TLS(加密)
网络层:TCP/IP

这层 TLS 负责两件事:

  1. 建立安全连接(握手阶段);
  2. 进行加密通信(传输阶段)。

三、加密的两种方式:对称与非对称

在理解 HTTPS 之前,必须先搞懂加密的两种方式。

🧩 1. 对称加密(Symmetric Encryption)

加密和解密使用同一个密钥。

举个例子:
小明想给小红发消息“我喜欢你”,他们约定密钥是 KEY=7
小明加密后发出:

原文:我喜欢你
加密:我(偏移7)→ 哎!符号乱了(但可以被小红解密回来)

优点:速度快。
缺点:密钥要双方提前共享,一旦泄露,安全性完蛋。


🧩 2. 非对称加密(Asymmetric Encryption)

加密和解密使用不同的密钥:一把公钥,一把私钥。

  • 公钥(Public Key):可以公开;
  • 私钥(Private Key):自己保管。

工作原理:

  • 任何人都可以用公钥加密;
  • 但只有私钥持有者能解密。

💡 举个例子:

服务器(小红)生成一对密钥:

公钥:PUBLIC_KEY
私钥:PRIVATE_KEY

小明(客户端)想发消息,就用小红的公钥加密。
即使黑客拿到了密文,也没法解密(除非拿到私钥)。


四、HTTPS 的握手过程(TLS 握手)

整个安全连接的建立过程,其实就是**双方约定“怎么加密”**的过程。

我们以 TLS 1.2 为例,简化理解:


🕹️ 步骤 1:客户端打招呼(Client Hello)

浏览器对服务器说:

“你好,我支持 TLS 协议、支持的加密算法有这些,你看看选哪种?”

同时会带上一个随机数(random1)。


🕹️ 步骤 2:服务器回应(Server Hello)

服务器回:

“OK,我选了某个加密算法。这是我的证书(含公钥)。”

并带上另一个随机数(random2)。


🕹️ 步骤 3:验证证书

浏览器会验证服务器的证书是否合法(来自可信 CA、未过期、域名一致)。

若合法,则从证书中提取出服务器的公钥。


🕹️ 步骤 4:生成会话密钥

客户端生成一个新的随机数(random3),
并用服务器的 公钥 加密后发给服务器。

服务器用自己的 私钥 解密,拿到 random3。

此时,双方共有:

random1 + random2 + random3

用这三者计算出一个相同的 对称密钥(session key)
之后的通信都用它进行 对称加密(因为快)。


🕹️ 步骤 5:加密通信开始

握手完成后,双方用会话密钥进行加密通信。
黑客即使截获数据,也只能看到一堆乱码。


🔐 图解流程:

浏览器                  服务器│----Client Hello------>││<---Server Hello-------│(附带公钥证书)│----验证证书---------->││----传随机数加密------>│(用公钥)│<---解密并确认--------││====进入加密通信======>│

五、那“证书”到底是什么?

证书就像网站的身份证,由权威机构(CA)签发。

里面包含:

  • 网站的公钥;
  • 域名;
  • 有效期;
  • 颁发机构;
  • 数字签名。

🧩 证书的验证过程:

  1. 浏览器拿到证书;

  2. 验证:

    • 签发者是否可信;
    • 域名是否一致;
    • 有效期是否过期;
  3. 通过 CA 的公钥验证数字签名;

  4. 一切没问题,就信任。

🧠 举个现实例子:

打开浏览器 → 访问 https://www.baidu.com
点击地址栏左侧的小锁 → 查看证书:

你会看到:

颁发给: www.baidu.com
颁发者: GlobalSign RSA CA 2018
有效期: 2023/5/22 - 2024/5/22

这意味着百度的证书是由一个全球受信任的 CA 签发的。


六、数字签名:防篡改的关键

数字签名用来确保“传输内容没被改过”。

流程如下:

  1. 服务器对内容做哈希(摘要);
  2. 用私钥对哈希值加密 → 得到签名;
  3. 客户端拿到签名后,用公钥解密;
  4. 再次对内容哈希,若结果一致,说明内容未被篡改。

这就像信封上的火漆印——保证内容原封不动。


七、TLS 1.3:更快更安全的新时代

TLS 1.3 在 2018 年发布,几乎重写了整个加密握手逻辑:

改进点说明
握手更快只需一次往返(1-RTT)
更安全废弃旧算法(RSA、SHA-1)
0-RTT 重连下次访问可直接复用密钥

在现代浏览器中,HTTPS 默认使用的就是 TLS 1.3


八、实际演示:查看 HTTPS 加密信息

  1. 打开 Chrome

  2. 访问任意 HTTPS 网站

  3. F12 → “安全 (Security)” 选项卡

  4. 你会看到:

    Connection: secure
    Protocol: TLS 1.3
    Key Exchange: X25519
    Cipher Suite: AES_128_GCM
    

这表明整个通信正在被高级加密算法保护。


九、小结

功能HTTPHTTPS
明文传输
数据加密
防篡改
身份认证
速度快(明文)稍慢(但已优化)

HTTPS 让互联网从“信任靠运气”走向“信任靠数学”。


🔚 下篇预告

到此为止,你已经真正明白了:

“为什么 HTTPS 安全,以及它是怎么安全的。”

接下来第 7 篇,我们将进入实战篇:

🧰《HTTP 实战:常用调试工具与抓包技巧》
我们会学:

  • curl 发请求;
  • 用 Postman 调试接口;
  • 用 Wireshark 抓包;
  • 用 Fiddler 分析 HTTPS 流量。

http://www.dtcms.com/a/537388.html

相关文章:

  • 电商网站产品模块手机网站推荐几个
  • 考研408——机组OS
  • 公司网站策划书seo站内优化
  • 网站优化计划书金坛建设局招标网站
  • 网站语言包是什么网站建设教育机构
  • 蓝色中网站常德网站建设公司
  • 基于MATLAB的图像处理程序
  • vs2017 网站开发环境有做soho网站的吗
  • Qt笔记:qt5.15.2自行编译qtscript
  • 重庆本地网站有哪些广东省住房和城乡建设厅官网查证
  • 【MySQL体系】第8篇:MySQL集群架构技术详解
  • 人力资源网站怎么建设标题翻译为英文wordpress
  • vue + elementUI 实现特殊字符(上标、下标、特殊符号等)输入框
  • C++如何查询实时贵金属行情
  • Spark 配置优化:如何将每个文件上传时间提升一倍
  • 试描述一下网站建设的基本流程图长春房产
  • 从 “你好 Siri” 到 “你好 GPT”:语言模型如何改变对话?
  • 自己怎么做可以让百度收录的网站网站空间不够用怎么办
  • PyTorch 探索利器:dir() 与 help() 函数详解
  • 山东兽药网站建设巩义服务专业网站建设
  • ASR+TTS
  • 固安县住房和城乡建设局网站北京企业建站团队
  • 阿里云DLF 3.0:面向AI时代的智能全模态湖仓管理平台
  • 阿里云专有云发布面向未来十年“双I”战略:AI技术驱动+全球化拓展,加速客户迈向指数级增长
  • pc端网站模型建设工具深圳网站建设开发公司哪家好
  • 网站目录不能访问wordpress去掉更新提示
  • (107页PPT)酒店智能化设计方案(附下载方式)
  • Trae实操:连接Vizro MCP实现数据可视化
  • Mybatis注解方式CRUD数据库
  • 漳州台商投资区建设局网站oa软件开发