我是LDAP,SSL和AD的新手。试图了解如何解决这个问题,但即使在google上进行大量搜索后也找不到某些问题的答案。
安装AD证书颁发机构后,它会生成一个必须在AD域控制器中导入的证书。它是否正确? 这次导入是一次性设置吗?
如果客户端计算机上有要对AD进行身份验证的软件,是否应将证书导入客户端计算机?
只需将协议设置为" SSL"在客户端机器上的软件没有帮助。是否应将证书导入到必须与AD通信的每台客户端计算机的证书存储区中?
答案 0 :(得分:0)
不需要在客户端计算机上导入证书。如果您使用的是自签名证书或来自内部CA的证书,则需要确保证书的颁发链最终在客户端计算机上受信任。
您还需要确保DC正在收听636/3269。
您可以使用RSAT工具中包含的ldp
实用程序来测试客户端。
答案 1 :(得分:0)
否,不应将其导入每台计算机,但是,创作授权(CA)应该安装在每台使用LDAP的计算机上的“受信任的根证书颁发机构”中。您的AD证书应安装在服务端下方。这是一个将证书安装到正确位置的脚本。安装完成后,建议您使用LDP.exe实用程序进行验证。该脚本将使用PFX证书文件。该脚本会将其复制到根目录上的本地C驱动器中,然后在完成后将其删除。您将需要更新以下内容:
路径可以是 UNC 或本地
$ cert_name =“ FullNameOfCertPfx.pfx ”
$ cert_path =“ 此处的路径名 \ $ cert_name”
$ pwd =“ 在此处输入您的PFX密码”
$dcs = Get-ADDomainController -Filter * | sort name
for($i =0; $i -lt $dcs.Count; $i++)
{
$cert_name = "**FullNameOfCertPfx.pfx**"
$cert_path = "**PathNameHere**\$cert_name"
$cert_dst = "\\" + $dcs[$i].name + "\c$\"
#This will copy it to the DC
Copy-Item -Path $cert_path -Destination $cert_dst -Force -Confirm: $false -Verbose
Write-Verbose $dcs[$i].name -Verbose
Invoke-Command -ComputerName $dcs[$i].name -ScriptBlock {
$pwd = "Put your PFX Password here"
$cert_pwd = ConvertTo-SecureString -String $pwd -AsPlainText -Force
$cert = Import-PfxCertificate -Password $cert_pwd -FilePath "C:\star_corp-nutanix-with-key.pfx" cert:\localMachine\my -Verbose
$reg_path = "HKLM:\SOFTWARE\Microsoft\SystemCertificates\MY\Certificates\$($cert.Thumbprint)"
$reg_dst = "HKLM:\SOFTWARE\Microsoft\Cryptography\Services\NTDS\SystemCertificates\MY\Certificates\"
if(!(Test-Path $reg_dst))
{
if(!(Test-Path "HKLM:\SOFTWARE\Microsoft\Cryptography\Services\NTDS"))
{
New-Item -Path "HKLM:\SOFTWARE\Microsoft\Cryptography\Services\" -Name "NTDS" -Verbose
}
if(!(Test-Path "HKLM:\SOFTWARE\Microsoft\Cryptography\Services\NTDS\SystemCertificates"))
{
New-Item -Path "HKLM:\SOFTWARE\Microsoft\Cryptography\Services\NTDS" -Name "SystemCertificates" -Verbose
}
if(!(Test-Path "HKLM:\SOFTWARE\Microsoft\Cryptography\Services\NTDS\SystemCertificates\My"))
{
New-Item -Path "HKLM:\SOFTWARE\Microsoft\Cryptography\Services\NTDS\SystemCertificates" -Name "My" -Verbose
}
if(!(Test-Path "HKLM:\SOFTWARE\Microsoft\Cryptography\Services\NTDS\SystemCertificates\My\Certificates"))
{
New-Item -Path "HKLM:\SOFTWARE\Microsoft\Cryptography\Services\NTDS\SystemCertificates\My" -Name "Certificates" -Verbose
}
}
else{Write-Verbose "Path is there" -Verbose}
Move-Item $reg_path $reg_dst -Verbose
Remove-Item -Path "c:\$cert_name" -Verbose
}
}