IIS 中的身份驗證模式為匿名時,為什麼 IE 會彈出憑證?

IIS 中的身份驗證模式為匿名時,為什麼 IE 會彈出憑證?

我有一個網站部署在 IIS 伺服器上。身份驗證模式設定為匿名:啟用。

當我輸入網站 URL 並按 Enter 按鈕時,IE 會顯示一個憑證彈出窗口,要求我選擇一個憑證。為什麼會發生這種情況?

答案1

瀏覽器提示輸入證書,因為伺服器在 TLS 握手期間發送了證書請求訊息。

通常,作為此過程的一部分,它會發送將接受其憑證進行身份驗證的 CA 的可分辨名稱清單。這份清單的基本意思是“向我發送由這些 CA 之一頒發的客戶端身份驗證證書”。如果它不發送列表,則用戶端可以隨意發送其擁有的任何客戶端身份驗證證書,該證書很可能不受伺服器信任。這只會增加操作員的工作量/挫折感,他們必須弄清楚(猜猜?)選擇哪個證書。

因此,您看到三個證書要么是因為您的瀏覽器中只安裝了三個客戶端身份驗證證書,並且列表為空;要么是因為您的瀏覽器中只安裝了三個客戶端身份驗證證書,且列表為空;或者您的瀏覽器中安裝了三個以上的客戶端身份驗證證書,並且伺服器發送的清單限制了它們的選擇。

詳細資訊在RFC 5246 第 7.4.4 節

從客戶端請求憑證的選項是在伺服器上配置的,因此您會看到此彈出窗口,因為伺服器配置為請求客戶端憑證。

請記住,這發生在任何 HTTP 流量之前,因此設定如下匿名認證IIS 上的設定不​​會影響這一點,因為這與建立 TLS 會話後如何透過 HTTP 對使用者進行身份驗證(無、Kerberos、使用者名稱/密碼等)有關。

大多數網路伺服器可以針對不同方案(http 與 https)、不同連接埠(443、與 8443)、不同 DNS 名稱(www.example.orgvs app.example.org)甚至不同的虛擬目錄(/ vs /myapp)。在此層級可以找到請求客戶端身份驗證的設定。

在 IIS 下設定客戶端身份驗證SSL 設定頁。 需要 SSL設定是否使用 HTTPS(伺服器身分和加密)以及下面的三個選項客戶證書定義瀏覽器是否需要傳送客戶端身份驗證憑證(如果沒有前者,則不能擁有後者,因為用戶端身份驗證是 TLS(或 SSL)的一部分)。有一個不同的SSL 設定每個網站以及網站下每個虛擬目錄的頁面。如果您不希望伺服器請求客戶端證書,請將其設定為忽略在所有這些中。

相關內容