证书撤销:CRL 与 OCSP
理解实践中如何撤销已遭入侵的证书
证书撤销:CRL 与 OCSP 是 CoddyKit 上的免费 Cryptology Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cryptology Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cryptology Academy 课程共包含 4 节课。
欢迎
证书会过期,但有时私钥会在过期前遭到泄露。撤销机制可以让 CA 宣布某个证书不再可信。
撤销为何重要
如果攻击者窃取了您的 TLS 私钥,他们就能冒充您的服务器,直到证书过期。撤销机制可以让 CA 立即使该证书失效。
证书撤销列表(CRL)
CRL 是 CA 发布的、经过签名的已撤销证书序列号列表。客户端会下载 CRL,并检查目标证书的序列号是否在列表中。
CRL 的问题
CRL 可能很大(主要 CA 可能有数百万个已撤销证书)。CRL 会定期下载,因此刚刚被撤销的证书可能要过几小时才会出现在 CRL 中。延迟窗口 = 安全漏洞。
OCSP:在线证书状态协议
OCSP 会向 CA 运营的响应程序发送实时查询:
请求:“序列号 1234 仍然有效吗?”
响应:“有效”/“已撤销”/“未知”
响应由 CA 的 OCSP 签名密钥签名。
OCSP 的隐私问题
每次您访问网站时,浏览器都会告诉 CA 的 OCSP 响应程序您正在访问哪个网站。这会将浏览历史泄露给 CA。Firefox 会对大多数连接禁用 OCSP。
OCSP 装订
OCSP 装订解决了隐私问题:服务器会定期获取自己的 OCSP 响应,并将其“装订”到 TLS 握手中。客户端无需联系 CA 就能获得该响应。
OCSP 必须装订扩展
OCSP 必须装订 X.509 扩展会告知浏览器:如果未提供装订的 OCSP 响应,就拒绝该证书。这可以防止跳过 OCSP 检查的软失败攻击。
软失败与硬失败
软失败:如果 OCSP/CRL 不可用,仍然继续连接(存在安全风险)。硬失败:如果无法确认撤销状态,就拒绝连接。Chrome 默认使用软失败。
CRLite 与 OneCRL
Firefox 使用 CRLite:一种包含所有已撤销证书的紧凑概率数据结构,每天更新。OneCRL 是一个更小的已撤销中间证书列表。二者都避免了 OCSP 查询。
如何撤销您自己的证书
Let's Encrypt ACME:certbot revoke --cert-path /etc/letsencrypt/live/domain/cert.pem
您需要私钥或 ACME 账户凭据。撤销会立即在 OCSP 响应中生效。
快速检查
与直接进行 OCSP 查询相比,OCSP 装订解决了什么问题?
回顾
证书撤销是一个复杂但至关重要的主题。接下来我们将使用 OpenSSL 创建自己的证书颁发机构。
常见问题解答
「证书撤销:CRL 与 OCSP」课时是免费的吗?
是的 — 「证书撤销:CRL 与 OCSP」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cryptology Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cryptology Academy 课程共包含 4 节课。
「证书撤销:CRL 与 OCSP」这节课中我会学到什么?
理解实践中如何撤销已遭入侵的证书 你通过在浏览器中直接运行的动手代码来练习 Cryptology Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Cryptology Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Cryptology Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「证书撤销:CRL 与 OCSP」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Cryptology Academy 课中编写并运行代码吗?
能。每节 Cryptology Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 什么是证书?X.509 结构
- 证书颁发机构与信任链
- 证书撤销:CRL 与 OCSP
- 使用 OpenSSL 创建自签名证书