如何通过PowerShell从RootCA导入AD集成LDAPS证书
问题根因
该报错核心是Get-Certificate调用CA的Web注册接口时,需要通过CredSSP完成凭证委派才能传递身份信息到远程CA服务器,未配置CredSSP时就会抛出参数无效的错误,也可能存在参数配置不匹配的问题。
解决步骤
步骤1:配置CredSSP凭证委派
以管理员身份运行PowerShell,执行以下命令开启本机CredSSP客户端权限,允许凭证委派到你的CA服务器:
Enable-WSManCredSSP -Role Client -DelegateComputer "rootca" -Force
若你的CA服务器使用完整域名,将
rootca替换为CA的完整FQDN,例如rootca.corp.com。
步骤2:修正证书申请参数
执行申请前先确认以下前提:
- 你的CA已发布名为
ldaps的证书模板,且$cred对应的账号拥有该模板的注册权限 - 若CA的Web注册服务要求HTTPS访问,将请求URL中的
http改为https
步骤3:执行证书申请命令
# 输入有证书注册权限的域账号凭证 $cred = Get-Credential # 申请并导入LDAPS证书到本地计算机存储 Get-Certificate -Template ldaps -CertStoreLocation cert:\localmachine\MY -Credential $cred -Url https://rootca/certsrv
更稳定的替代方案(无需配置CredSSP,内网环境推荐)
使用Windows原生的certreq工具申请,不需要依赖Web注册接口和CredSSP配置:
- 新建
ldaps_req.inf配置文件,内容如下:
[Version] Signature="$Windows NT$" [NewRequest] Subject = "CN=你的域控制器完整FQDN" KeySpec = 1 KeyLength = 2048 Exportable = TRUE MachineKeySet = TRUE ProviderName = "Microsoft RSA SChannel Cryptographic Provider" ProviderType = 12 RequestType = PKCS10 KeyUsage = 0xA0 [EnhancedKeyUsageExtension] OID=1.3.6.1.5.5.7.3.1 ; 服务器身份验证 [RequestAttributes] CertificateTemplate=ldaps
- 依次执行以下命令完成证书申请导入:
# 生成证书申请文件 certreq -new ldaps_req.inf ldaps.req # 提交申请到CA,替换为你实际的CA服务器名和CA实例名 certreq -submit -config "rootca\你的CA名称" ldaps.req ldaps.cer # 导入签发的证书到本地计算机存储 certreq -accept ldaps.cer
内容的提问来源于stack exchange,提问作者200mg
相关产品推荐
相关产品推荐

