1534 字
8 分钟
由ca证书引发的一串知识(HTTPS、TLS、CA证书与抓包原理学习笔记)
2026-10-09
无标签
  • 是否借助ai

HTTPS、TLS、CA证书与抓包原理学习笔记#

1. 整体关系#

互联网安全通信涉及几个核心概念:

HTTPS
|
| 使用
↓
TLS
|
| 使用密码算法
|
+---- 非对称密码(RSA/ECC)
|
+---- 密钥交换(ECDHE)
|
+---- 对称加密(AES)
|
+---- 哈希/认证算法
同时:
CA证书负责身份认证

简单理解:

  • HTTPS:HTTP + TLS
  • TLS:负责建立安全通信的协议
  • CA:负责证明“这个公钥属于谁”
  • RSA/ECC:生成密钥、签名等密码学能力
  • AES:真正加密大量通信数据

2. SSL 和 TLS 的关系#

SSL#

全称:

Secure Sockets Layer(安全套接层)

最早由 Netscape 提出。

版本:

SSL 1.0
SSL 2.0
SSL 3.0

TLS#

全称:

Transport Layer Security(传输层安全协议)

TLS 是 SSL 的后继版本。

发展:

SSL 3.0
↓
TLS 1.0
↓
TLS 1.1
↓
TLS 1.2
↓
TLS 1.3

现在实际使用:

TLS

但是很多地方仍然习惯叫:

  • SSL证书
  • SSL配置
  • SSL加密

实际大部分指 TLS。


3. TLS解决什么问题?#

TLS主要解决三个问题:

3.1 保密性#

防止别人看到通信内容。

例如:

HTTP:

password=123456

抓包可以看到。

TLS:

x83hd92jd82

无法理解。


3.2 身份认证#

确认:

我连接的是正确服务器,不是假服务器。

例如:

访问:

https://www.baidu.com

需要确认:

这真的是百度吗?

靠:

CA证书
+
数字签名

3.3 数据完整性#

防止通信内容被修改。

例如:

原数据:

money=100

被修改:

money=10000

TLS可以检测。


4. 公钥和私钥不是RSA专属#

常见误解:

RSA才有公钥和私钥。

正确:

非对称密码算法都有公钥和私钥,RSA只是其中一种实现。

关系:

非对称密码算法
|
+--- RSA
|
+--- ECC
|
+--- ECDSA
↓
生成密钥对
公钥
私钥

5. RSA是什么?#

RSA是一种非对称密码算法。

它生成:

公钥 Public Key
私钥 Private Key

特点:

公钥加密
私钥解密
私钥签名
公钥验证

6. CA是什么?#

CA:

全称:

Certificate Authority(证书颁发机构)

作用:

证明某个公钥属于某个实体。

例如:

服务器:

www.baidu.com

拥有:

百度公钥
百度私钥

但是客户端不知道:

这个公钥是不是百度的?

所以需要 CA 证明。


7. CA证书里面有什么?#

重点:

CA证书包含:#

CA名称
CA公钥
有效期
CA签名
其他信息

不包含:

CA私钥 ❌

原因:

证书需要公开。

所有浏览器和操作系统都保存:

根CA证书

里面包含:

CA公钥

用于验证签名。


8. CA为什么有公钥和私钥?#

因为 CA 需要进行数字签名。

CA拥有:

CA私钥 🔴
CA公钥 🟢

签发证书:

例如百度申请证书:

步骤:

第一步#

百度生成:

百度公钥
百度私钥

保存:

百度私钥

提交:

百度公钥
+
域名

给CA。


第二步#

CA签名:

计算:
hash(域名 + 百度公钥)
↓
CA私钥签名
↓
生成百度证书

最终:

百度证书:

域名
百度公钥
CA签名

第三步#

浏览器验证:

百度证书
↓
找到CA公钥
↓
验证CA签名
↓
确认百度公钥可信

9. CA私钥为什么不能泄露?#

准确说:

不能泄露的是 CA 私钥,不是 CA证书。


CA私钥作用:

签发证书

如果泄露:

攻击者可以:

拿CA私钥
↓
生成:
bank.com证书
openai.com证书
google.com证书
↓
浏览器认为可信

后果:

攻击者可以伪造任何网站身份。


10. 抓包工具为什么需要安装CA?#

例如:

  • Charles
  • Fiddler
  • Burp Suite
  • mitmproxy

它们实现:

HTTPS中间人代理(MITM)。


正常:

客户端
|
TLS
|
服务器

抓包:

客户端
|
TLS
抓包工具
|
TLS
服务器

问题:

客户端收到的是:

api.xxx.com证书

但是实际上:

抓包工具生成:

api.xxx.com假证书

签发者:

抓包工具CA

如果没有安装:

抓包工具CA

客户端:

不信任
连接失败

安装后:

系统信任:

抓包工具CA

验证:

api.xxx.com证书
↓
抓包工具CA
↓
可信

于是抓包工具可以解密HTTPS。


11. 为什么安装CA有风险?#

因为:

安装根CA = 增加信任来源。

例如:

默认:

信任:
DigiCert
Let's Encrypt
GlobalSign

安装:

某代理软件CA

之后:

信任:
DigiCert
Let's Encrypt
GlobalSign
某代理软件

这个CA理论上可以签发:

bank.com证书
openai.com证书

你的系统会接受。


12. 公司内部服务为什么需要配置CA?#

不是所有内部服务都需要。

原因:

公司可能使用:

公司内部CA

例如:

Company Root CA
|
|
↓
payment.company.com证书

你的电脑收到:

payment.company.com证书

检查:

谁签发?
Company Root CA

但是:

电脑默认不知道:

Company Root CA

所以:

SSLHandshakeException

解决:

安装:

Company Root CA证书

让系统信任:

公司内部所有服务

13. CA和访问外网大模型的关系#

安装CA:

不能直接:

获得更强模型权限

CA只解决:

HTTPS信任问题

如果企业内网访问外部AI:

通常结构:

开发电脑
|
企业代理 / AI Gateway
|
外网大模型

代理可能需要:

安装企业CA

原因:

代理需要检查或转发HTTPS流量。

真正提供访问能力的是:

代理/网关/网络出口

不是CA。


14. TLS现代通信流程(简化)#

访问:

https://example.com

流程:

① 服务端发送证书#

包含:

域名
服务器公钥
CA签名

② 客户端验证#

检查:

CA是否可信
域名是否匹配
证书是否过期

③ 密钥交换#

现代TLS:

主要使用:

ECDHE

生成:

会话密钥

④ 加密通信#

大量数据:

使用:

AES
ChaCha20

15. 最终知识体系#

HTTPS
|
TLS
|
+----------------+
| |
身份认证 数据加密
| |
CA证书 AES
|
数字签名
|
非对称密码
|
+------+
|
RSA/ECC

核心记忆:

  1. TLS负责安全通信流程
  2. CA负责证明身份
  3. 证书里面有公钥,没有私钥
  4. CA私钥负责签发证书,绝不能泄露
  5. RSA只是非对称算法的一种
  6. 抓包工具通过让用户信任它的CA,实现HTTPS中间人代理
  7. 安装CA不是获得权限,而是扩大信任范围
由ca证书引发的一串知识(HTTPS、TLS、CA证书与抓包原理学习笔记)
https://lichangzhuo.xyz/posts/由ca证书引发的一串知识httpstlsca证书与抓包原理学习笔记/
作者
涌现
发布于
2026-10-09
许可协议
CC BY-NC-SA 4.0