CA证书到底是怎么签发的?(CA签名、CA数字签名、CA数字证书、TLS Certificate、Certificate Authority、根证书、Root CA、中级 CA、网站签名、加密签名)
文章目录
从零理解 HTTPS 证书:CA 证书到底是怎么创建的?
很多人刚接触 HTTPS 时都会产生一个疑问:
数字证书不是任何人都能生成吗?那浏览器为什么会相信某些证书?
这篇文章会从 证书的实际创建流程讲清楚这个问题。
一、HTTPS 的核心问题
在互联网上访问网站时,浏览器需要确认两件事:
1️⃣ 这个网站是不是我想访问的那个网站
2️⃣ 我们之间的通信不会被别人偷看
HTTPS 使用 TLS 协议解决这两个问题。
其中最关键的就是 数字证书(TLS Certificate)。
二、证书其实任何人都可以生成
首先要明确一点:
生成证书本身非常容易。
例如用 OpenSSL 一条命令就能生成:
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem
这会生成:
- 私钥(private key)
- 证书(certificate)
问题是:
任何人都可以生成证书
那浏览器为什么会相信某些证书?
答案是:
因为证书需要“可信机构签名”。
三、CA:证书颁发机构
在 HTTPS 体系里,有一种机构叫:
CA(Certificate Authority)
例如:
- Let’s Encrypt
- DigiCert
- GlobalSign
它们的作用类似:
互联网的“公证处”。
流程是:
网站 → 申请证书
CA → 验证网站身份
CA → 签发证书
浏览器只信任 这些 CA 签发的证书。
四、申请 HTTPS 证书需要提供什么?
申请证书时通常需要提供:
1 网站域名
例如:
example.com
www.example.com
CA 需要确认:
你真的拥有这个域名。
验证方法通常是:
- DNS 记录验证
- 在网站服务器放一个验证文件
- 邮件验证
2 公钥
网站需要先生成一对密钥:
公钥(public key)
私钥(private key)
私钥:
只保存在服务器
绝不能泄露
公钥:
提交给 CA
写入证书
3 组织信息(某些证书)
一些证书还需要提供:
- 公司名称
- 地址
- 注册信息
这种证书叫 EV证书(扩展验证证书)。
五、CA 如何生成证书
当 CA 验证完成后,会生成一个证书文件。
证书里包含:
域名
公钥
证书有效期
签发机构
签名
其中最关键的是:
CA 的数字签名。
签名本质上是:
CA 用自己的私钥
对证书内容进行加密签名
六、浏览器如何验证证书
当你访问:
https://example.com
浏览器会收到服务器发送的证书。
然后做三件事:
1 检查域名
证书里的域名是否匹配:
example.com
2 检查签名
浏览器会用 CA 的公钥验证签名。
如果签名正确:
说明证书确实是 CA 签发的
3 检查是否可信
浏览器和操作系统里内置了一些 根证书。
例如:
- Google Chrome
- Mozilla Firefox
- Microsoft Edge
它们都保存了一份 可信 CA 列表。
只要证书的签发机构在这个列表里:
浏览器就会信任这个网站
七、为什么还会有 Root CA 和中级 CA
现实中 CA 不会直接用最重要的密钥签证书。
因此会形成一个结构:
Root CA(根证书)
↓
Intermediate CA(中级证书)
↓
网站证书
原因是:
保护根证书的安全。
Root CA 的私钥通常:
- 离线保存
- 极少使用
日常签证书的是 中级 CA。
整个体系叫:
Public Key Infrastructure
八、如果有人伪造证书会怎样?
如果攻击者自己生成一个证书:
example.com
签发者:自己
浏览器会发现:
签发机构不在可信列表
于是出现警告:
Your connection is not private
这就是 HTTPS 防止假网站的机制。
九、总结
HTTPS 的信任体系其实很简单:
网站生成密钥
↓
向 CA 申请证书
↓
CA 验证域名并签名
↓
浏览器验证 CA 签名
所以浏览器信任的不是证书本身,而是:
签发证书的 CA。
更多推荐



所有评论(0)