我们希望强制远程桌面使用基于特定命名模板的证书,而不是使用自签名证书。这适用于具有证书颁发机构服务器的林,但不适用于没有自己的 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 而不是显示名称的开发林中?