为什么要备一份索引
TLS 与 HTTPS 的行为细节散落在核心协议之外的多个文档里:协议正文、扩展机制、证书吊销、透明日志、QUIC 传输各有对应 RFC。排障时按编号取原文,比翻二手资料更快也更准;实现层面对照 IANA 注册表核对常量与编号,可以避免不同实现对同一扩展默认值不一致造成的误判。
查证路径
| 取原文 | rfc-editor.org 按编号或关键词检索,可拉纯文本离线存一份 |
|---|---|
| 查编号 | IANA 的 TLS 参数注册表给出扩展号、命名组、套件编号的权威分配 |
| 看实现 | OpenSSL、BoringSSL、NSS 的文档常滞后于代码,冲突时以代码与测试向量为准 |
| 看弃用 | 被后续 RFC 取代的旧文不要照抄结论,注意文档状态字段 |
典型使用场景
- 排障对号入座:遇到 HRR、ECH、证书压缩等机制先确认属于哪份文档,避免把正常协商当成故障。
- 客户端与服务端能力核对:确认双方各自实现的扩展编号是否一致。
- 合规与评审备查:安全评估需要引用协议原文,而不是博客转述。
- 版本升级评估:判断某个扩展是否已成为标准、是否仍处草案阶段。
- 自研实现开发:按注册表取值写常量,避免与业界冲突。
取原文与检索
取原文与检索
curl -s https://www.rfc-editor.org/rfc/rfc8446.txt | head -30 # 按编号取正文
curl -s https://www.rfc-editor.org/rfc-index.txt | grep -i tls # 拉索引筛相关文档
rg -n 'RFC 8879' ./docs/ # 在本地文档库定位引用位置
rg -n -i 'certificate_compression' ./notes/ # 按扩展名反查所在文档常用 RFC 速查
| 编号 | 主题 | 用途 |
|---|---|---|
| RFC 8446 | TLS 1.3 | 当前主流版本协议正文 |
| RFC 5246 | TLS 1.2 | 存量系统基线协议 |
| RFC 6066 | TLS 扩展(SNI 等) | 虚拟主机与扩展字段 |
| RFC 7301 | ALPN | HTTP/2、HTTP/3 的协议协商 |
| RFC 5077 | 会话票据 | 无状态会话恢复 |
| RFC 6960 | OCSP | 证书吊销状态查询 |
| RFC 9162 | 证书透明 CT v2 | SCT 与日志体系 |
| RFC 9000 | QUIC | HTTP/3 的传输基础 |
| RFC 7507 | 降级防护 | TLS_FALLBACK_SCSV |
| RFC 8879 | 证书压缩 | 压缩证书链减少握手字节 |
扩展类机制先看 RFC 与 IANA 注册表,再看实现文档。草案阶段的机制(编号常以 draft- 开头)在不同版本间会改,生产环境引用要注明版本。