Skip to content

05 · TLS 与证书 ​

HTTPS 的"绿锁"背后是 TLS 握手与证书信任链。本篇讲协议细节:握手怎么协商密钥、证书怎么被信任、常见的 SSL_ERROR 是哪一层出错。S04 传输安全 讲安全实践,本篇只讲原理。

速览卡 ​

项内容
一句话定位TLS 握手、证书信任链与常见错误的协议原理
核心内容握手流程、非对称+对称加密、信任链、常见错误
读完能回答为什么握手能安全交换密钥?证书过期为何报错?
相关板块N04 HTTP | S04 传输安全 | N11 抓包

一、握手在做什么:三步共识 ​

text
① 客户端问候 ClientHello(支持的版本/算法/随机数)
② 服务端返回 ServerHello + 证书 + 密钥交换参数
③ 双方各自算出会话密钥 → 切换加密 → 结束

核心思想:用非对称加密安全地协商出一个对称会话密钥,之后数据都用对称密钥加密(快得多)。


二、为什么需要两种加密 ​

加密快慢用途
非对称(RSA/ECDSA)慢握手阶段传递密钥材料、签名验证
对称(AES/ChaCha20)快建立会话后的批量数据

心智模型:非对称像"保险箱 + 钥匙",对称像"同一把钥匙开锁"。用慢的保险箱把快钥匙安全交给对方,之后一路快。


三、证书与信任链 ​

text
根证书 ──签发──> 中间证书 ──签发──> 你的站点证书
概念说明
证书包含域名、公钥、有效期、签名
信任链逐级验证签名,直到本机信任的根证书
有效期证书过期即不可信
域名匹配证书里的 SAN 必须匹配访问的域名

浏览器报"不安全",通常是三种之一:证书过期、域名不匹配、签发机构不受信任(自签证书 / 被吊销)。


四、TLS 1.2 vs 1.3 ​

版本握手 RTT特点
1.22 RTT老但兼容广
1.31 RTT精简握手、更快的 0-RTT 恢复、移除弱算法

迁移到 1.3 是收益明显的低成本优化:少一个 RTT,移动端弱网尤其明显。


五、常见错误与定位 ​

现象原因层处理
certificate expired证书过期续期(现多自动续期)
hostname mismatch域名不匹配检查证书 SAN
self-signed certificate不受信任内网才考虑,别在生产关校验
handshake failure算法/版本不兼容看服务端支持的协议与套件
客户端报错但浏览器正常客户端证书库旧更新根证书

六、自检清单 ​

  • [ ] 能画出 TLS 握手的三步共识
  • [ ] 能说清非对称与对称加密的分工
  • [ ] 能解释证书信任链的验证过程
  • [ ] 能根据浏览器报错判断是哪一层问题
  • [ ] 知道 TLS 1.3 相比 1.2 省了什么

七、常见误区 ​

误区事实
"证书加密了所有数据"加密靠会话密钥,证书只负责身份与公钥分发
"自签证书改改就能上生产"生产应关闭校验,属于安全事件
"HTTPS 一定慢很多"握手可复用,1.3 + 会话恢复成本很低
"过期才是不安全"域名不匹配、被吊销同样不可信

八、动手练习 ​

练习 A:看证书链 ​

用浏览器访问任意 HTTPS 站点,打开"证书详情",观察信任链的每一级签发关系。

练习 B:看握手 ​

openssl s_client -connect example.com:443 观察握手输出,找 New, TLSv1.3 与证书链。

练习 C:本地复现 ​

用 openssl 自签一张证书配置到本地服务,访问观察浏览器报错文案,再手动信任观察变化。


相关文档 ​

本区 ​

其他域 ​