Nginx:OCSP 和用戶端憑證

Nginx:OCSP 和用戶端憑證

我有一個可運行的 Nginx 設置,並配置了 OCSP 裝訂。現在我想為多個 URL 新增用戶端憑證驗證。

因此,我添加了一條ssl_client_certificate聲明,指向我們用於受限 URL 的 CA 證書(它是私有 CA 證書,未由任何公開的 CA 簽署),並且由於大多數伺服器仍應公開可用,因此我將其設定ssl_verify_clientoptional.

這只能發揮一半作用:我可以使用 cURL(*) 運行請求,無論是否傳遞證書,並在公共 URL 以及檢查證書是否存在的受保護 URL 上接收預期回應。

但現在我的問題是:當使用瀏覽器存取相同的 URL(不提供憑證)時,Nginx 回應錯誤 400。並從命令行運行它們,它可以完美地工作。可能是什麼問題呢?

而且即使是 cURL -v,也--trace-ascii沒有顯示任何可以向我解釋為什麼它可能在瀏覽器中失敗的內容。我不會在這裡貼上整個(長)配置,如果您認為缺少一些基本內容,請隨時發表評論。

編輯:我檢查並確認 cURL 發送Host, User-Agent, Accept, Accept-Language, Referrer,DNT標頭以及 cookie 和會話 ID 並啟用壓縮,就像 Firefox 所做的那樣。

此外,Firefox 和 cURL 都沒有可以向伺服器提供的任何用戶端證書,而且 Firefox 也配置為請求證書而不是自動提供證書。

另一位編輯:午餐回來後(同時沒有設定變更)Firefox 可以載入第一頁和相關資源一次。現在,幾分鐘後,僅嘗試各種請求,即沒有更改,它不再起作用了。此外,Chrome 報告錯誤 400,並使用其開發人員工具中的「複製為 cURL」(再次包含所有標頭)表明它再次可以在 cURL 中工作。此外,我多次嘗試了所有請求,以確保針對單一使用者代理程式顯示的行為不存在不一致。我很困惑,這一切對我來說似乎都很隨意。

相關內容