我有一個 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 的最佳方法是什麼以獲得所需的命令。