使用伺服器 CA 以外的其他 CA 簽署的憑證驗證 HTTPS 用戶端

使用伺服器 CA 以外的其他 CA 簽署的憑證驗證 HTTPS 用戶端

我有一個 apache Web 伺服器,其上有一個由受信任的官方 CA 簽署的伺服器憑證。我是否可以將 apache ssl 設定為接受具有由 CA(而非簽署伺服器憑證的 CA)簽署的有效憑證的用戶端?

ssl_error_unknown_ca_alert即使我在 apache 中配置了其他 CA 並且在伺服器啟動時沒有錯誤,我還是收到了一個錯誤。我創建了一個文件,其中包含簽署伺服器憑證的 CA 的 CA 憑證以及我想要信任的 CA 的其他 CA 憑證。然後我將 SSLCertificateChainFile指令指向該檔案。

我正在使用 Apache 2.2.22

編輯:

我正在使用
SSLCertificateFile指向伺服器憑證
SSLCertificateKeyFile指向伺服器金鑰
SSLCertificateChainFile指向簽署伺服器憑證的憑證鏈
SSLCACertificateFile指向包含我想要接受的所有憑證鏈的文件

SSLVerifyClient require
SSLVerifyDepth  1

當我重新啟動伺服器時,Apache 會在日誌中識別它們,並且沒有錯誤。然而,我仍然遇到ssl_error_certificate_unknown_alert錯誤。我還透過 Meld 中的文字比較驗證了客戶端憑證鍊是否存在SSLCACertificateFile

答案1

發現是什麼問題了。該憑證由 3 個 CA 鏈簽名,我將 SSLVerifyDepth 設定為 1。

答案2

我相信您需要一個包含您要使用的憑證的目錄。您可能需要使用一些 SSL 魔法來建立憑證的符號連結。看mod_ssl SSLCACertificatePath 正確用法或處理多個可接受的用戶端憑證 CA 的最佳方法是什麼以獲得所需的命令。

相關內容