撤銷檢查到底怎麼運作

憑證可能在到期前被撤銷——私鑰外洩、網域易主、簽發有誤都是理由。問題是:驗證方怎麼知道手上這張憑證已經被撤銷了?這個看似單純的問題,過去二十年換過好幾種答案。

OCSP 曾經是主流解法:客戶端連線時向憑證機構的伺服器查詢「這張憑證還有效嗎」。但它有個結構性問題——憑證機構因此知道了哪個 IP 正在造訪哪個網站,等於在每次連線裡插入一個第三方觀察者。

機制 運作方式 現況
OCSP 直接查詢 客戶端連線時即時詢問憑證機構 隱私問題明確,瀏覽器多已不採用
OCSP 裝訂 伺服器代為查詢,把結果附在 TLS 交握中 Let's Encrypt 已於 2025/8 關閉服務
CRL 撤銷清單 憑證機構發布清單,由驗證方自行取得 CA/B Forum 自 2024/3 起列為必要
Chrome CRLSets Google 篩選後隨瀏覽器更新推送 Chrome 一直以來的實際做法
四種撤銷檢查機制與 2026 年的實際狀況。

下表整理四種機制與現況。第二列是多數教學仍在教、但已經停止運作的那一種。

Let's Encrypt 停止 OCSP 的三個時間點

這不是突然關閉,而是分三階段完成,時程都已經過去:

  1. 2025 年 1 月 30 日:停止新的 Must-Staple 請求 Must-Staple 是憑證裡的一個標記,要求客戶端必須看到有效的裝訂回應才接受連線。它原本用來堵住「裝訂失敗就當作沒事」的漏洞,但代價是一旦裝訂出問題,網站直接連不上。這個階段之後,多數帳戶已無法再申請帶此標記的憑證。
  2. 2025 年 5 月 7 日:憑證中不再包含 OCSP 網址 這是影響最廣的一步。憑證裡沒有 OCSP 網址,伺服器就無從查詢,ssl_stapling on; 這類設定自此失去作用——不會報錯,只是靜默地什麼都不做。許多人的設定檔至今仍留著那幾行。
  3. 2025 年 8 月 6 日:OCSP 服務完全關閉 回應伺服器下線。在此之前簽發、仍帶有 OCSP 網址的舊憑證,查詢也會開始失敗。以目前的憑證效期來算,那些憑證早已全部過期輪替完畢。

為什麼要廢掉一個安全機制

官方給的第一個理由是隱私。Let's Encrypt 明確指出:使用者造訪網站時,運作 OCSP 回應伺服器的憑證機構會立即得知「某個 IP 位址正在造訪哪個網站」。對一個簽發了數億張憑證的機構而言,這等於掌握了一份規模驚人的瀏覽紀錄。

第二個理由是營運成本——維持全球規模的即時查詢服務消耗大量資源,那些資源可以用在別的地方。

方向其實在更早就定了。CA/Browser Forum 在 2023 年通過表決,將 OCSP 改為選配、CRL 改為必要,並於 2024 年 3 月生效。Let's Encrypt 的決定是順著這個方向走,不是單方面的行動。

你現在該檢查什麼

最直接的是看設定檔裡還有沒有殘留。Nginx 的 ssl_stapling on; 與 ssl_stapling_verify on;、Apache 的 SSLUseStapling on 這類指令,在憑證沒有 OCSP 網址的情況下不會造成錯誤,但也不再有任何效果。留著不會壞事,只是那是一段已經沒有意義的設定。

另一個要確認的是商用憑證的情況不同。這次變動是 Let's Encrypt 的決定,部分商業憑證機構仍在提供 OCSP 服務。如果你同時管理免費與商用憑證,兩者的行為會不一樣——判斷之前先確認該憑證實際上還有沒有 OCSP 網址。

三個層次的處理

依實際情況分別處理:

一、確認憑證本身有沒有 OCSP 網址

這決定後續所有判斷。沒有網址就不必再考慮裝訂相關設定;有網址(多為商用憑證)則裝訂仍然有效,可以保留。不要憑「以前設過」就假設它還在運作。

二、清掉已失效的設定,但不必急

殘留的裝訂設定不會造成故障,所以不需要緊急處理。但在下次調整設定檔時順手移除比較好——留著會讓後來接手的人以為裝訂正在運作,而依據錯誤的前提排查問題會浪費很多時間。

三、理解撤銷檢查的實際覆蓋範圍

不要假設撤銷會即時生效。CRL 與 CRLSets 都有更新週期,而 Chrome 的 CRLSets 是經過篩選的子集、並非完整清單。這也是憑證效期持續縮短的背景之一——效期越短,撤銷機制需要承擔的責任就越小。

排查前該確認的三件事

遇到與撤銷或裝訂相關的問題時,先釐清這三項:

  1. 這張憑證是誰簽發的 Let's Encrypt 與商用憑證機構的行為現在完全不同。搞錯簽發者會讓整個排查方向偏掉。
  2. 設定檔裡的裝訂是真的在運作嗎 設定存在不等於生效。Nginx 在無法取得 OCSP 回應時會寫入警告而非中止啟動,所以服務看起來一切正常。要看日誌,不是看設定檔。
  3. 問題是否真的與撤銷有關 憑證鏈不完整、效期問題、網域不符都會產生類似的錯誤訊息,而且常見得多。先排除那些,再往撤銷的方向查。

小結

「記得開啟 OCSP 裝訂」曾經是正確的建議,現在對 Let's Encrypt 憑證已經不適用——憑證裡沒有 OCSP 網址,那行設定不會報錯,只是靜默地什麼都不做。這類過時建議在中文技術內容裡仍然大量流傳,而它的危害不在於造成故障,在於讓人誤以為某個防護還在運作。

撤銷檢查的整體趨勢是往 CRL 與更短的憑證效期靠攏。若您不想追蹤這類生態變動,我們的 SSL 憑證自動化平台處理簽發與部署,讓憑證管理跟著標準走而不需要您逐項盯著。

參考資料