资讯文章 资讯 · NEWS
OCSP 装订还留不留:2025 年之后,目录站 HTTPS 那层要重看的四件事
2026-10-24 约 1,497 字 预计阅读 4 分钟 yiyunkj
O
证书到期会有人管,因为浏览器会当众报错。但 HTTPS 那一层还有四件事不会报错,只会悄悄浪费握手时间、或者在某次轮换之后突然失效。
第一件事在 2025 年已经变了,而且是那种变了没人通知你的变。

图片来源:网络,版权归原作者所有,侵权请联系删除
OCSP 装订:留着无害,但别再为它写告警
OCSP 装订的思路是服务器在握手时把 CA 的吊销响应一并带过去,省掉浏览器自己去问。这个省下的往返是真的,问题在于上游已经不在了。
Let's Encrypt 2024 年 12 月公布的时间表是这样的:2025 年 1 月 30 日起带 Must-Staple 扩展的签发请求会被拒,5 月 7 日新证书不再包含 OCSP 地址、只留 CRL 地址,8 月 6 日 OCSP 响应器关停。给出的理由是隐私——响应方能看到哪个 IP 在查哪个站点——以及维护成本。
浏览器那边其实更早就走了。Chrome 用随更新下发的 CRLSets,Firefox 推 CRLite,都是本地查不去问 CA;CA/Browser Forum 2023 年 8 月的投票把 OCSP 改成可选、CRL 改成强制,2024 年 3 月生效。也就是说,你站上那行 ssl_stapling 对主流浏览器已经几乎没有收益。
| 时间 | 发生了什么 | 目录站该做什么 |
|---|---|---|
| 2025-01-30 | Must-Staple 签发请求开始失败 | 检查 ACME 客户端是否还带着这个扩展 |
| 2025-05-07 | 新证书移除 OCSP 地址 | 把"缺少装订响应"的告警规则删掉 |
| 2025-08-06 | OCSP 响应器关停 | 监控改成盯证书有效期与 CRL 可达性 |
如果你用的是别的 CA,它可能还在跑 OCSP,装订照旧开着。判断标准很简单:证书里还有没有 OCSP 地址。用 openssl s_client -connect 域名:443 -servername 域名 -status 看握手里的装订响应,或者 openssl x509 -text 找 Authority Information Access 段。
会话复用才是握手里真正省时间的地方
TLS 1.3 把完整握手压到 1-RTT,复用会话则连证书签名那一步都跳过了。对目录站这种一次访问要发十几个请求的站点,复用率比单次握手快多少更重要。
复用靠的是会话票据,票据用票据加密密钥(STEK)加密。这里有个容易忽略的点:密钥的生命周期就是暴露窗口。偷到一把密钥,它保护过的会话都能被解开,所以轮换要比"部署时生成一次、之后再没动过"勤快得多,按小时或天量级走,用密钥环的形式保留前几把只用于解密,避免刚发出去的票据忽然失效。多节点要在集群内同步同一套密钥环,否则用户被调度到另一台机器就复用失败。
0-RTT 只对幂等请求开
0-RTT 允许客户端在握手完成前就发数据,速度最快,代价是这段数据可被重放:攻击者截下来重发一次,服务端会正常解密处理。RFC 8446 里就把重放风险写在 0-RTT 那一节。
目录站上真正需要防的是写操作——提交站点、改资料、发通知。做法有两条:只让无副作用的 GET 走 0-RTT,写操作直接关掉(Nginx 是 ssl_early_data off);或者识别 Early-Data: 1 请求头,对里面的非幂等请求回 425 让客户端重新走完整握手。
证书链顺序这种低级错误还在发生
服务端发的链要包含中间证书,顺序是站点证书在前、中间证书在后,根证书一般不用发。配错的表现很刁钻:桌面浏览器正常,某些移动端或旧客户端报不受信任,因为对方没有你依赖的那个中间证书,也不愿意自己去拉。
部署完拿 openssl s_client -showcerts 数一遍链里有几张证书,比等用户反馈便宜。
这四件事有个共同点:配对了没人夸你,配错了也没人立刻发现。把它们放进每半年过一遍的那张清单里就够了,不必天天盯。