簡體   English   中英

Apache httpd:如何信任特定的客戶端證書?

[英]Apache httpd: How to trust specific client certificates?

如何配置Apache httpd以信任特定的客戶端證書?

我們需要將對Web服務的訪問限制為特定(已知)合作伙伴的服務器。
我們計划為此使用基於CA的解決方案(一個可靠的CA,只有在我們接受它們時才會簽署值得信賴的CSR); 但是,我們公司的CA不會為外部公司創建證書。

無論如何,為了建立安全連接,在必要的PKI准備好之前,我們希望在Apache httpd代理上配置特定的客戶端證書。

但httpd不接受客戶端的連接,客戶端嘗試使用客戶端證書進行連接,該客戶端證書已添加到為虛擬主機配置的CACertificateFile(以Base64和DER格式(PEM)編碼的串聯x509證書)中。

在這種情況下,客戶端證書不是自簽名證書。

您應該通過SSLCACertificateFileSSLCACertificatePath配置您信任的CA證書,並使用SSLVerifyClientoptionalrequired ,而不是optional_no_ca ,不執行任何身份驗證)來使服務器請求客戶端證書。

如果直接在VirtualHost部分中使用SSLVerifyClient ,則將在初始握手期間發送客戶端證書。 如果將其放在Directory / .htaccess ,則將重新協商客戶端證書。

在初始握手中發送證書時,調試更容易,因為客戶端證書本身不會被加密。 您應該能夠通過使用Wireshark查看流量(在客戶端發送的Certificate消息中)來查看它。 在調試時,值得檢查服務器發送Certificate Request消息,並查看其證書頒發機構列表。

問題的典型原因是,如果需要,客戶端無法識別該列表或未在其鏈中發送其中間CA證書的客戶端。

如果您想更具體地授權某些證書,可以檢查變量SSL變量(例如SSL_CLIENT_S_DN_* )並在SSLRequire指令中使用它(參見示例 )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM