
如果 Windows 主機有多個 RDP 憑證。連接時是否檢查所有內容還是僅檢查第一個找到的內容?
我有一個從根 CA 部署的 RDP 證書,現在 AIA 中的 OCSP 位置無效。現在連接到每個主機顯然需要更多時間來檢查無效的 OCSP 位址。我會部署額外的有效 RDP 證書,但我不確定它如何處理這兩個證書。如果我是正確的,那麼就不會費心檢查過期的證書。
但它會檢查所有 RDP 憑證(如果它們未過期),然後當然仍然會抱怨無效的 OCSP 嗎?
我希望它能以某種方式對完全有效的 RDP 證書感到滿意。
對於 RDP 證書,我的意思是具有增強密鑰使用值“1.3.6.1.4.1.311.54.1.2”的證書
答案1
如果您目前不透過群組原則部署它們,我建議您這樣做。本文描述如何建立自訂憑證範本和 GPO 以使您的伺服器註冊並綁定正確的憑證。
我建議它的原因 - 如果您有內部 CA - 是簡單地替換您擁有的證書,使用 GPO 強制它可能會更乾淨。如果您已經進行了此設置,則調整憑證範本並選擇強制所有客戶端重新註冊的選項可能會讓他們取得並綁定新憑證。
來回答您的實際問題,如果您有多個具有正確 EKU 的有效證書,我相信 RDP 將與具有正確 EKU 的證書綁定最長有效期限左(我做了一個簡短的搜索,但現在找不到相關參考)。在這種情況下,可能值得找到幾台機器,並檢查 RDP 使用的證書指紋以及商店中的有效證書。
這就是我建議全面發布新憑證的部分原因 - 如果它們較新/運行時間更長,RDP 應該綁定到那些而不是 OSCP 不正確的憑證。如果這看起來一致,希望這可以避免編寫解決方案來強制綁定哪個本地憑證。根據我的經驗,刷新/重新頒發有效證書無需額外步驟。
答案2
似乎可以為 RDP 連線強制綁定憑證。 (感謝 Reddit 上的同事)
這會檢查目前綁定的憑證:
wmic /namespace:\\root\cimv2\TerminalServices PATH Win32_TSGeneralSetting Get SSLCertificateSHA1Hash
這可以設定它:
wmic /namespace:\\root\cimv2\TerminalServices PATH Win32_TSGeneralSetting Set SSLCertificateSHA1Hash="<THUMBPRINT>"
如果透過 wmic 設定新憑證不起作用,您也可以編輯登錄機碼:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
- 值名稱:SSLCertificateSHA1Hash
- 值類型:REG_BINARY
- 值資料:(證書指紋)
當心!設定無效的憑證會導致無法建立新的 RDP 連線。