簡體   English   中英

是否可以自動 select 正確的客戶端證書?

[英]Is it possible to automatically select correct client side certificate?

我已經使用 SSL 客戶端證書配置了 Apache httpd 網站,這樣只有在 web 瀏覽器中安裝了正確證書的用戶才能訪問該網站。

如果只安裝了一個客戶端證書 web 瀏覽器將自動 select 它(它不是默認設置,但可以在設置對話框的某處進行配置)。 但如果用戶安裝了多個證書,web 瀏覽器會顯示證書列表,用戶必須選擇正確的一個才能繼續。

問題是:有沒有辦法配置httpd發送提示,使web瀏覽器可以自動select所需的證書?

SSL (TLS) 協議只允許服務器對客戶端證書指定兩個約束:

  1. 證書類型(RSA、DSA 等)
  2. 簽署客戶端證書的可信證書頒發機構 (CA)

您可以使用“openssl s_client”查看您的 Apache 服務器信任哪些 CA 以獲得客戶端證書。 我不知道如何配置 Apache 來更改該列表(抱歉),但我敢打賭有辦法。 因此,如果您可以將列表限制為(例如)您自己組織的 CA,那么您將盡您所能允許 Web 瀏覽器自動訪問 select 客戶端證書。

正如尤金所說,瀏覽器是否真的這樣做取決於特定的瀏覽器。

我想說,由於證書的選擇是客戶端任務,因此沒有明確的方法可以強制客戶端從服務器端使用這個或那個證書。

除了@Nemo 和@Eugene 所說的,默認情況下,Apache Httpd 將發送它從其SSLCACertificateFileSSLCACertificatePath配置指令中獲取的 CA 列表。

但是,您可以強制它使用SSLCADNRequestFileSSLCADNRequestPath指令在certificate_authorities中發送不同的列表,並將它們指向另一組證書。 僅使用這些證書的主題 DN(並在列表中發送)。 如果您想強制使用某些名稱,您甚至可以使用您想要的任何名稱對這些證書進行自簽名。 我已經嘗試過了(與SSLVerifyClient optional_no_ca結合使用,您可以讓客戶端發送服務器實際上沒有的 CA 證書的證書。(這不一定有用,但它有效。)

暫無
暫無

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

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