证书因为私钥泄露走了吊销流程,CA 后台显示已吊销,用旧证书访问站点依然返回 200,小锁也是正常的。第一次遇到会往复杂处想,其实漏掉的多是个小前提。

ssl_stapling on;
ssl_stapling_verify on;
openssl ocsp -issuer chain.pem -cert cert.pem -url http://ocsp.example.com -resp_text

吊销列表和 OCSP 响应都要客户端主动去查,很多客户端为了速度直接跳过。服务端不做装订,浏览器就当作没这回事。这一点先确认清楚,后面就不用反复试。

「证书吊销检查」相关的验证我通常做两遍,改完一次、隔天再看一次,确认不是临时生效。把这次用到的命令存进笔记,比记住结论有用,换个环境还能照着走。

改完隔一天再看一次,当场正常不代表能稳住。测试环境和线上的差别,往往就在版本号和那几行被忽略的配置上。

具体做法是,先确认 CA 后台状态确实是 revoked,别把申请当成完成;服务端打开 OCSP 装订,把吊销状态随握手一起发给客户端;私钥泄露的场景直接换新密钥重签,别指望吊销能立刻拦住。

改完照着核一遍,openssl ocsp 返回 revoked,浏览器访问出现证书已被吊销的提示。

作者 9823189