Windows-Server-2003

啟用 SSL 的網頁不提示輸入客戶端證書

  • December 16, 2010

摘要:我們有兩個不同的啟用 SSL 的 Windows Server + II6 環境。一個按照我們想要的方式行事,而另一個則不是。

伺服器配置

  • 視窗伺服器 2003 SP2
  • IIS 6
  • 頁面配置為 SSL 客戶端身份驗證。

詳細資訊:我們有一個生產 VM,它被配置為託管一個 IIS 6 網站,其中有幾個頁面需要 SSL 客戶端身份驗證才能啟用 CAC。在此生產 VM 上,頁面顯示伺服器證書,然後在提示輸入客戶端證書之前消失。為了測試伺服器的配置,我們創建了一個與這些 CAC 頁面具有相同配置的“Hello World”頁面,我們看到了相同的結果。然後,我們將該頁面放置在具有相同 OS/IIS 版本的已知工作 VM 上,並以相同方式配置該頁面。該頁面通過提示輸入客戶端證書然後載入頁面來正常執行。

我們為解決此問題所採取的步驟

  • 檢查兩台機器上證書路徑的完整性
  • 區分兩個 VM 之間的 IIS 元數據庫以檢查是否存在不一致
  • 在損壞的 VM 上創建並安裝了新的伺服器證書
  • 將選項更改為“需要客戶端證書”而不是“接受客戶端證書”
  • 檢查 IIS 日誌是否有錯誤。所有訪問都返回為 200。

我們找到了一個解決我們的問題的選項,但會產生新的問題。有一個為所有頁面協商客戶端證書的選項,這會導致出現證書提示,但這會導致每個頁面都這樣做,這違背了 SSL 會話的目的。

同樣重要的是:這個損壞的虛擬機已經按照政府的規范進行了 STIGged。我們懷疑這可能是根本原因。但是,取消STIGging 的可能性不在我們的控制範圍內。因此,我們必須克服目前的局限性。

在獲得 Microsoft 支持的三週後,找到了解決方案。修改以下系統資料庫​​值:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\SecurityProviders\SCHANNEL\DisableRenegoOnServer 已啟用。將值設置為 0,提示返回。

這是 Microsoft 知識庫文章:http: //support.microsoft.com/kb/977377

知識庫文章中描述了這些症狀,但是,此知識庫文章的主題不是這個問題:

“Internet 資訊服務 (IIS):在某些配置中,使用證書客戶端身份驗證的 IIS,包括證書映射方案,都會受到影響。站點範圍的客戶端證書身份驗證不會受到影響,並將繼續發揮作用。”

引用自:https://serverfault.com/questions/208419