news 2026/9/29 5:45:52

【证书】证书相关知识

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【证书】证书相关知识

1.公钥

1.1 本质

就是很大的数,有数字e, n, 看到的如下的一些.pem文件中的密钥,是数经过base64编码得到的字符串,便于文本传输

-----BEGIN RSA PRIVATE KEY-----

xxxxx......

-----END RSA PRIVATE KEY-----

1.2 作用

1.2.1 验证签名

验签过程是如下的数学运算:

e, n: 公钥的数 ,可以从base64编码后的字符串中解析出来

s: 签名,由私钥生成

pad(H(M)): 运算结果,是原始数据的哈希值

H: 哈希运算,常用sha256

M: 原始明文数据

pad: 表示填充

1.2.2 加密

也是数学运算:

2. 私钥

2.1 本质

也是很大的数,同公钥一样,但是有很多数,常用的这里有d, n。也是pem文件里面一堆字符串是base64编码所得,解析编码体可以解析出d, n 。这个跟公钥是一样的

2.2 作用

2.2.1 签名

含义同公钥

2.2.2 解密

含义同公钥

3. 密钥总结

项目RSA 加密RSA 签名
使用密钥公钥 (e,n) 加密;私钥 (d,n) 解密私钥 (d,n) 签名;公钥 (e,n) 验签
输入内容原始短明文 M原文的哈希摘要(经过填充)
目的保密,不让第三方看到明文证明数据是谁发的,有没有被篡改
能否反向推导密文只能私钥解密签名不能恢复原始原文,只能校验哈希

上述举例是RSA, 它的加密和签名底层的数学是用同一套 模幂运算,只是指数反过来;

总结:

私钥私有,公钥公开

私钥验名,公钥验签(处理的数据是明文哈希,经过填充)

私钥解密,公钥加密 (处理的是双端会话传输数据)

底层逻辑是数学运算

4. 证书

4.1 证书内容

以X.509为例,证书包含:

服务器公钥、域名、有效期、主体名称等(叫证书明文数据 T)

4.2 签名及验签

签发证书(服务器会将服务器公钥、证书等一起下发给客户端):

1. CA 计算Hash(T)→ 得到摘要(固定长度,比如 SHA256)

2. CA 用自己的私钥对这个哈希摘要做签名运算 → 得到数字签名 S

3. 把【明文 T + 签名 S】打包在一起 → 就是 X.509 证书

验签证书(客户端):

客户端拿到证书:明文 T + 签名 S

客户端本身持有CA根证书的公钥(如果是中间证书的公钥,可由服务器下发获取)

1. 客户端对明文 T 重新算一次哈希Hash(T)(证书中已经指定了使用的哈希算法,客户端使用该算法计算哈希)

2. 用CA 公钥验证签名 S,得到 CA 那边算出来的填充哈希,移除填充,得到原始哈希

3. 对比两个哈希:相等 = 验签通过,说明内容没篡改、确实是 CA 签的。

服务器提交信息 → 构造 tbsCertificate(待签名证书明文) ↓ CA计算 hash = SHA256(tbsCertificate) ↓ 对hash做填充 pad() ↓ sig = pad(hash)^d mod n # d,n来自CA的RSA私钥 ↓ 组装:tbsCertificate + 签名算法标识 + sig → 最终X.509证书

4.3 证书吊销

证书是有有效期的,但还没到期就失效,就叫吊销。 场景举例:

  • 服务器私钥泄露了,黑客拿到私钥,可以冒充服务器;证书虽然还没过期,但必须立刻作废。
  • 域名转让、服务器下线,不再使用这个证书。

证书吊销 = CA 对外宣告:这份证书虽然时间没到,但不再可信,禁止使用

客户端 TLS 握手时,需要确认证书有没有被吊销。两种主流查询机制:

  1. CRL(证书吊销列表):CA 维护一个文件,里面列出所有被吊销证书的序列号;客户端下载整个列表,查证书序列号是否在里面。缺点:列表会越来越大。
  2. OCSP(在线证书状态协议):客户端联网,单独向 OCSP 服务器查询「这个证书序列号是否吊销」,只查单条记录,更常用。

⚠️ 注意: 有些环境会配置 OCSP stapling:服务器提前去 CA 查询自己证书状态,把 OCSP 响应一起发给客户端,客户端不用单独连外网 OCSP 服务器。

一句话:有效期是 “自然过期”;吊销是主动提前作废证书。

5. TLS流程

服务器【持有:服务器私钥 + 服务器证书】 ↓ 1.握手,下发证书 客户端 ←---- 服务器证书(服务器公钥+CA签名+信息) ↓ 2.客户端校验证书 ┌────────────────────────────────┐ │ 客户端本地根CA公钥,校验CA签名 │ │ 检查有效期、域名、吊销状态 │ └───────────┬────────────────────┘ ↓ 验证成功 信任证书内的服务器公钥 ↓ 客户端生成随机密钥,【服务器公钥加密】→发给服务器 ↓ 服务器用【服务器私钥】解密,拿到随机密钥 ↓ 两端生成相同对称会话密钥 ↓ 业务数据:对称加密传输

注意点:

服务器下发给客户端的,除了证书本身的CA签名外,还有明文T数据,哈希算法标记等等,以及服务器的公钥,这个是服务器的,跟CA证书的密钥对不是一回事

CA证书的密钥对(签名验签): 证明证书可信

服务器的密钥对(加密解密): 用于证书可信后,服务器与客户端之间业务数据的对称加密传输

6. 证书链

6.1 证书链问题

上述说的例子前提是RSA, X.509,还有就是直接使用CA证书进行签名验签,实际上多数情况是有证书链的。如下:

根CA → 签发中间CA证书 → 中间CA签发网站服务器证书

TLS 握手时,服务器除了下发服务器叶子证书,一并把中间 CA 证书发给客户端。 客户端拿到中间证书,里面带有中间 CA 的公钥,用来验证叶子证书签名; 然后继续往上验签中间证书,直到找到本地内置的根证书完成整条链校验。

6.2 证书链场景TLS流程

1. 客户端收到服务器发来:服务器叶子证书 + 中间 CA 证书

2. 客户端用中间 CA 证书内的公钥,校验服务器证书签名

3. 客户端校验中间 CA 证书的签名,在本地系统证书库寻找根 CA 证书

4. 找到本地根证书,取出根 CA 公钥,校验中间 CA 证书签名

5. 整条链全部验签通过,再检查有效期、吊销状态、域名匹配

6.2 CA公钥来源

客户端的CA公钥怎么来的呢?(一般情况下预先内置在客户端本地系统 / 浏览器里)

获取 CA 公钥:本地预装/ 握手时服务器下发,不访问 CA 服务器

检查证书有没有吊销:联网访问 OCSP/CRL 服务器,查询证书状态

注意上述两种场景,CA公钥获取以及查看证书是否吊销不能混淆

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/29 5:44:17

低配电脑跑2B模型实战:显存计算、量化与部署路径全解析

前段时间我拿到了一台配置很普通的笔记本——没有独立显卡,16GB 内存,锐龙集显——想验证这类 2B 级模型到底能不能在个人电脑上跑起来。折腾 MiniCPM5-2B 的过程中,我把显存占用、量化格式、四条部署路径还有 3B 模型纯 CPU 的实测数据都整理…

作者头像 李华
网站建设 2026/9/29 5:44:09

模型优化四步法:量化感知训练、结构化剪枝、算子融合与硬件编译

1. 这不是“一键加速”,而是模型瘦身的手术刀式实践“Model-Optimizer”这个词最近在工程师茶水间、技术群和GitHub trending里频繁刷屏,但它绝不是某个新出的黑盒工具图标,更不是营销话术里“3秒压缩50%参数量”的夸张标语。我从2018年开始做…

作者头像 李华
网站建设 2026/9/29 5:42:32

TypeScript 接口完全指南:从结构类型契约到高级应用模式

文档教程 【免费下载链接】TypeScript TypeScript 使用手册(中文版)翻译。http://www.typescriptlang.org 项目地址: https://gitcode.com/gh_mirrors/typ/TypeScript 点击查看 免费下载 本文是 TypeScript 使用手册(中文版&…

作者头像 李华
网站建设 2026/9/29 5:42:23

Navbar 组件完全指南:从基本导航到响应式抽屉菜单

前端UI组件 【免费下载链接】rsuite 🧱 A suite of React components . 项目地址: https://gitcode.com/gh_mirrors/rs/rsuite 点击查看 免费下载 导读:Navbar 是 rsuite 中用于页面顶部导航的容器组件,它是对 Nav 组件的一层封…

作者头像 李华