啟用 SSL 的網頁不提示輸入客戶端證書
摘要:我們有兩個不同的啟用 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,包括證書映射方案,都會受到影響。站點範圍的客戶端證書身份驗證不會受到影響,並將繼續發揮作用。”