受信任域之间的 Active Directory LDAPS
Posted
技术标签:
【中文标题】受信任域之间的 Active Directory LDAPS【英文标题】:Active Directory LDAPS between Trusted Domains 【发布时间】:2019-11-25 19:24:15 【问题描述】:我正在尝试在两个域控制器 domainA.com 和 domainB.com 之间配置 LDAPS。我们配置了单向信任,以便 domainB.com 有权查看位于 domainA.com 中的用户帐户。 DomainA.com 有多个 SSL 证书:根证书和中间证书,以及每个域控制器的多个证书。
我正在寻求有关完成该过程的步骤的反馈,因为我觉得在上传证书时我遗漏了一些东西。我在下面详细说明了我采取的步骤。
根据我的研究,通过 LDAPS 启用这些控制器之间的连接的过程是:
注意:步骤 3-5 基于以下链接文章
-
在域控制器之间打开端口(已完成)
建立单向信任(已完成)
从 domainA.com 域控制器导出证书(已完成)
将 .cer 文件加载到 domainB.com 并将它们添加到 java 密钥库(已完成)
使用 ldp.exe 工具建立 636 连接(失败)
我是 Active Directory 的新手,不熟悉如何启用 LDAPS。在this article 的 LDAPS 部分,我执行了以下步骤来在 domainB.com 上配置 LDAPS:
-
已安装 Active Directory 证书服务和证书颁发机构
将 domainA.com 中的 .cer 文件添加到 domainB.com 服务器的 Java 密钥库中
使用 ldp.exe 工具测试连接(389 (LDAP) 连接成功,636 (LDAPS) 连接失败)
使用 PortQryUI 工具进行的附加验证检查表明,域控制器之间的所有端口均已打开。
环境:AWS 和 On Prem
域控制器
domainA.com - 本地 AD 域控制器(由其他人控制)
domainB.com - AWS AD 域控制器(由我控制)
【问题讨论】:
【参考方案1】:您正在测试的计算机必须信任该证书(开始菜单 -> 管理计算机证书 -> 受信任的根证书颁发机构)。如果我没记错的话,每次 ldp.exe 尝试连接并由于证书错误而失败时,事件查看器(系统日志)中可能会出现错误。
如果您想测试证书是否可信,您可以使用this answer 的 PowerShell 下载证书。只需使用https://domainA.com:636
作为“网站”。
$webRequest = [Net.WebRequest]::Create("https://domainA.com:636")
try $webRequest.GetResponse() catch
$cert = $webRequest.ServicePoint.Certificate
$bytes = $cert.Export([Security.Cryptography.X509Certificates.X509ContentType]::Cert)
set-content -value $bytes -encoding byte -path "domainA.com.cer"
然后双击domainA.com.cer
(在您运行此代码的任何文件夹中)以查看它。如果它不受信任,它将向您显示一个大警告。您的目标是能够查看它并让它说它是受信任的。
【讨论】:
以上是关于受信任域之间的 Active Directory LDAPS的主要内容,如果未能解决你的问题,请参考以下文章
在 C# 中验证远程 Active Directory 的用户
允许在没有Active Directory信任的情况下进行winhttp委派
Active Directory - Hortonworks 跨领域信任建立