Openvpn

OpenVPN - 嘗試驗證客戶端證書上的 CRL

  • October 4, 2018

我在執行 OpenWRT 的硬體路由器上執行 OpenVPN。每次客戶端連接時,我都會在日誌中收到以下錯誤:

VERIFY WARNING: depth=0, unable to get certificate CRL

我有一個 2 級 CA,兩個級別都發布 CRL 和路由器上可用的合併 CRL,OpenVPN 使用它。

我很困惑為什麼 OpenVPN 試圖在深度 0 獲取 CRL,這是客戶端證書。它不會抱怨深度 1 和 2,這表明我的 CRL 文件很好……

似乎更高版本的 OpenVPN 無法理解一個文件中的多個 PEM 編碼 CRL。

如果您編輯您的 CRL 文件,使其僅包含客戶端證書頒發 CA 的 CRL,您將看到您不會收到錯誤,depth=0而是會收到depth=1. 如果交換目前文件中 CRL 的順序,您可能會得到相同的結果。

要在更高版本的 OpenVPN 上解決此問題,您應該使用--capath

–capath 目錄

包含受信任證書(CA 和 CRL)的目錄。不適用於 mbed TLS。

--capath將所有 CA 證書和 CA 生成的 CRL 放在選項指向的目錄中。記得刪除--ca option.

執行c_rehash <path to certs and CRLs>以生成證書及其 CRL 的雜湊。

重新啟動 OpenVPN,您應該會發現您的日誌沒有 CRL 警告。

**注意:**您永遠不應該收到depth=2(您的根 CA)的 CRL 警告,因為它將是一個自簽名證書,而其中一個的 CRL 是沒有意義的,因為它將由自己簽名。但似乎如果您省略根 CA 的 CRL,它會為自身 ( depth=2) 以及它頒發的證書(位於 的中間 CA depth=1)顯示驗證警告。它應該只對後者顯示警告。

引用自:https://serverfault.com/questions/933785