RDP 和 GPO 設置伺服器身份驗證證書模板(Microsoft Windows Server 2016)
我們希望強制遠端桌面使用基於特定命名模板的證書,而不是使用自簽名證書。這適用於具有證書頒發機構伺服器的林,但不適用於沒有自己的 CA 伺服器的林。我想避免硬編碼證書指紋以在每台電腦上使用,因為每次更新證書時都需要更新。
我們有許多 Active Directory 域(每個林一個域),它們具有 Microsoft Enterprise CA(每個林一個 CA 伺服器)。這些原始域/林相互不信任,並且相互之間有防火牆。我們所有的伺服器都使用 Windows Server 2016。
證書模板在一個 CA 上生成,然後復製到其他 CA。沒有任何證書模板具有副檔名“遠端桌面身份驗證”(1.3.6.1.4.1.311.54.1.2)。域中的每個伺服器都有一個基於帶有“伺服器身份驗證”副檔名的模板的證書,並且我們有一個 GPO,其設置“伺服器身份驗證證書模板”配置了我們要與 RDP 一起使用的證書模板的名稱。這似乎在具有 CA 的域/林中執行良好。
為了支持第三方的應用程序開發,我們建構了額外的森林,每個原始森林一個,每個新森林都信任其對應的原始森林。開發林沒有 CA - 它們的證書由 CA 在其相應的原始林中頒發。開發林具有 GPO,這些 GPO 通常是其相應原始林中 GPO 的副本。
如果我查看具有 CA 的主要森林中的證書,在屬性“證書模板資訊”中,顯示的值的格式為“模板 =
Display Name
(OID
)…”。在沒有 CA 伺服器的域中,顯示的值採用“Template=OID
”形式(即沒有顯示名稱,只有 OID)。我相信這就是 GPO 設置在沒有本地 CA 的森林中不起作用的原因。我在這裡使用了腳本:https://www.sysadmins.lv/blog-en/export-and-import-certificate-templates-with-powershell.aspx從具有 CA 的森林之一複制證書模板和 OID到相應的開發林。儘管該過程成功,但這無助於將 OID 解析為證書的顯示名稱,也沒有使 GPO 設置正常工作。我注意到轉移到新域時模板的 OID 不同(我查看了“公鑰服務”下的 AD 站點和服務。我還嘗試了該模組:https ://www.powershellgallery.com/packages/ ADCSTemplate/1.0.1.0給出了類似的結果。
有沒有一種簡單的方法,無需更改原始證書模板或創建新的,我們可以有一個 GPO(在所有森林之間複製)來指定要與 RDP 一起使用的證書模板,還是我們必須有單獨的 GPO在具有證書模板的 OID 而不是顯示名稱的開發林中?
你只有兩個選擇:
- 在每個林中安裝 CA
- 在具有和不具有 CA 的林之間建立雙向林信任,並配置跨林證書註冊。
- 沒有第三種選擇。