启用LDAPS需域控制器证书满足三条件:存于本地计算机个人存储、主题/SAN含精确FQDN、由客户端信任CA签发;推荐企业CA+GPO自动注册,失败主因是私钥缺失、证书链不全或FQDN不匹配。
为域控制器配置ssl证书以启用ldaps,核心是让windows的ntds服务能自动识别并绑定一张满足严格条件的证书。这不是简单导入证书就行,关键在证书位置、属性、信任链三者必须同时到位。
证书必须满足的三个硬性条件
缺一不可,否则636端口不会监听:
- 证书必须存放在本地计算机 → 个人证书存储中(即
MY存储),不能放在用户账户或NTDS专用存储里(除非明确配置NTDS使用); - 证书的主题(CN)或SAN必须精确匹配域控制器的FQDN,例如
dc01.corp.example.com;用主机名、IP或通配符都不行; - 证书必须由客户端信任的CA签发,且根证书已部署到客户端“受信任的根证书颁发机构”存储;域内推荐用AD CS企业CA,公网环境可用Sectigo、DigiCert等,但需手动分发根证书。
推荐做法:通过企业CA + GPO自动注册
这是最稳定、可长期续订、权限自动合规的方式:
- 在AD CS中复制“Domain Controller Authentication”模板,勾选自动注册和允许导出私钥(仅当需要备份时启用);
- 通过组策略将该模板发布到“Domain Controllers”安全组,路径:计算机配置 → 策略 → Windows设置 → 安全设置 → 公钥策略 → 自动证书申请策略;
- 重启域控制器,或运行
certutil -pulse触发申请;成功后证书会出现在“本地计算机 → 个人”中,私钥权限自动设为NT AUTHORITY\SYSTEM可读; - 无需手动绑定——NTDS服务启动时自动检测匹配FQDN的有效证书,并开启636端口监听。
手动申请证书(适用于无企业CA场景)
若使用第三方CA或离线申请,需确保请求文件正确:
- 创建
request.inf文件,关键项包括:Subject = "CN=dc01.corp.example.com"(务必替换为真实FQDN)KeySpec = 1(密钥交换)MachineKeySet = TRUE(绑定到计算机账户)Exportable = TRUE(便于后续排查) - 用
certreq -new request.inf request.req生成CSR,提交给CA; - 收到证书后,用
certreq -accept cert.cer导入——这一步会自动关联私钥并放入“本地计算机 → 个人”存储; - 切勿双击安装或用MMC导入PFX:容易导致私钥未关联或权限错误。
验证与常见问题排查
配置完成后,快速确认是否生效:
- 运行
netstat -ano | findstr :636,应看到LISTENING状态及PID为lsass.exe(通常PID 4或500+); - 用
ldp.exe连接:连接 → 连接 → 填入FQDN、端口636、勾选SSL;成功即显示“已建立SSL连接”; - 若失败,优先检查:
— 事件查看器中“Directory Service”日志ID 2886(证书不匹配)、2887(证书加载失败);
— 证书是否真在“本地计算机 → 个人”,且状态栏无“此证书没有与其关联的私钥”提示;
— 客户端执行certlm.msc,确认CA根证书已在“受信任的根证书颁发机构”中。


















