详解 HTTPS之 TLS 证书信任链

相信大家在学习计算机网络的过程中都会接触到 HTTP 和 HTTPS,TLS四次握手的环节也被频繁地提及。但大部分文章对第三次握手:客户端验证服务器提供的证书并提取公钥只是一笔带过,但实际上验证服务器证书是否合法也是很复杂的,其中就要经过 TLS 版本链的验证。这篇文章就要详细解析这个问题。

数字证书与CA

CA = Certificate Authority,证书颁发机构

它是受信任的第三方机构,负责:

  • 验证网站 / 机构 / 个人的真实身份
  • 用自己的私钥签发数字证书
  • 维护证书的合法性、有效期、吊销状态

数字证书 = 身份证(网络世界的)

一份标准证书里主要包含:

  • 持有者公钥
  • 持有者域名 / 组织 / 个人信息
  • 有效期
  • 签发它的 CA 信息
  • CA 用私钥做的数字签名(保证没被篡改)

一句话:数字证书 = 公钥 + 身份信息 + CA 的签名

证书链

信任链是根证书 → 中间证书 → 终端证书的层级结构,每一层都由上一层用私钥签名,形成可追溯的信任传递。

层级 名称 角色与作用 存储位置 签发方式
顶端 根证书(Root CA) 信任锚点,整个体系的权威起点;私钥离线、严格保密 操作系统 / 浏览器内置信任库(如 Windows "受信任的根证书颁发机构") 自签名(自己签发自己)
中间 中间证书(Intermediate CA) 根 CA 的授权代理,用于签发终端证书;隔离根 CA 私钥,降低泄露风险 服务器需随终端证书一起发送给客户端 由根证书私钥签名签发
底端 终端证书(End-Entity/Server Cert) 直接绑定域名 / 服务器,用于 TLS 握手的身份认证与密钥交换 部署在 Web 服务器(Nginx/Apache 等) 由中间证书私钥签名签发

流程

  • 获取证书链 :服务器在 TLS 握手时,返回终端证书 + 所有中间证书(必须完整,否则客户端无法构建到根的路径)。
  • 逐级验证签名
    • 用中间证书公钥 验证终端证书的签名 → 确认终端证书由该中间 CA 合法签发。
    • 用根证书公钥 (来自本地信任库)验证中间证书的签名 → 确认中间 CA 由受信任根 CA 授权。
  • 信任锚定 :验证追溯到本地预装的根证书 → 信任链成立。
  • 附加有效性检查
    • 证书未过期(检查 Not Before/Not After)。
    • 域名匹配(CN/SAN 与访问域名一致)。
    • 未被吊销(查询 CRL/OCSP)。
    • 签名算法安全(如禁用 SHA-1)。
  • 结果:全部通过 → 连接安全(浏览器显示锁);任一失败则报错

额外疑问

为什么会提示 "证书不受信任"?

  • 证书是自签名的
  • 证书由不知名 / 未预装的 CA 签发
  • 证书链不完整(缺中间证书)

自签名证书和 CA 证书区别?

  • 自签名:自己签自己,浏览器不认
  • CA 证书 :由权威机构签发,系统 / 浏览器内置信任

CA 为什么安全?

  • 根 CA 私钥离线保存、极度安全
  • 中间 CA 用来实际签发,隔离风险
  • 浏览器 / OS 只信任极少数根 CA
相关推荐
honsor20 小时前
SNMP 读取以太网温湿度传感器数据,监控平台对接实操
物联网·网络协议·tcp/ip
Yves..1 天前
HTTP 协议学习笔记:从报文结构到抓包实践
网络协议·http·fiddler
Black蜡笔小新1 天前
上云网关/端口穿透/设备上云EasyNTS:无需公网IP、也不改防火墙,设备怎么从内网跑到外网去
网络·网络协议·tcp/ip
g5zhu58961 天前
没有公网ip的情况下,本地能ping服务器服务器不能ping本地,让服务器能访问本地某端口的简单方法
服务器·网络协议·tcp/ip
guizhoumen1 天前
net core下WebSocket请求总是断开的解决方案
网络·websocket·网络协议
2501_916008891 天前
iPhone 设备信息查看,用 KeyMob 看型号、序列号、电池健康和 UDID
android·ios·小程序·https·uni-app·iphone·webview
小园子的小菜1 天前
Netty 核心组件 Channel、ChannelHandler 与简易 RPC 架构实战详解
网络协议·rpc·架构
一条泥憨鱼2 天前
【计算机网络】短连接、长连接与连接池:从 TCP 握手到池化复用的完整链路
网络·数据库·网络协议·tcp/ip·计算机网络
cyf312 天前
第 05 篇:IP 协议—— 网络层的“快递单号与物流追踪“
网络协议·tcp/ip·路由表·traceroute·ip协议·ping·ip分片