OCSP 如何處理已刪除的憑證?

OCSP 如何處理已刪除的憑證?

我們在 Windows Server 2019 上執行 Microsoft 憑證授權單位。 Android 裝置使用者使用需要用戶端憑證的 Chrome Web 瀏覽器(在 Android 上)瀏覽至 Web 應用程式(由 Apache 託管,在 PHP 8 中實作)。

我們正在安裝具有 Microsoft OCSP 回應者角色的單獨 Windows Server 2019 實例,以驗證/驗證向 Apache Web 伺服器提供的用戶端憑證是否有效。 Apache 有多個指令來處理 OCSP 驗證。我們還想驗證 PHP 中的憑證以提高安全性。

根據我閱讀多個 RFC 和 Microsoft 技術文件的研究,Microsoft OCSP 回應程式似乎透過引用 CRL 的撤銷狀態來驗證憑證。

如果憑證已從 CA 中刪除而不是撤銷,Microsoft OCSP 回應程式如何驗證憑證?如果刪除且未撤銷,它們將不會顯示在 CRL 中。

我在這裡錯過了什麼嗎? Microsoft OCSP Responder 是否會根據 CA 資料庫驗證序號及其撤銷狀態?

答案1

Microsoft OCSP Responder 是否會根據 CA 資料庫驗證序號及其撤銷狀態?

預設情況下,Microsoft OCSP 會將此類序號報告為「Good」。從 Windows Server 2008 R2 開始,Microsoft OCSP 中新增了確定性 OCSP 回應功能。簡而言之,CA 發布曾經頒發的憑證的所有序號,而 OCSP 也配置為檢視此目錄。新行為執行以下操作:

  • 如果資料夾中不存在序號,OCSP 將傳回UNKNOWN狀態。這意味著 CA 從未頒發過所請求的序號
  • 如果資料夾中存在序號,則檢查 CRL
  • 如果序號在 CRL 中列出,REVOKED則響應狀態,否則響應GOOD

有關 Microsoft 知識庫的更多詳細資訊:線上回應程式服務不會為 CRL 中未包含的所有證書回傳確定性 GOOD

此知識庫包含一個腳本,可將已頒發憑證的所有序號轉儲到設定的資料夾中。不過劇本有點缺陷。它僅導出腳本執行時 CA 資料庫中存在的序列。維護 CA 資料庫並刪除舊條目以防止 CA 資料庫過度成長。UNKNOWN儘管證書已頒發並存在於野外,但這將導致已刪除的證書出現誤報狀態。我更喜歡保留所有已頒發的內容,無論 CA 維護如何,並做出回應,GOOD即使憑證已從 CA 中刪除。為了解決這個缺陷,我建議從腳本中刪除這些行:

dir | foreach {
    remove-item $_ -force
}

這將在腳本運行之間保留 CA 上不再存在的序號。

相關內容