ldaps 是什么
636 是 LDAP over TLS/SSL 的注册端口(早期叫 sldap):连接一建立就先做 TLS 握手,再在加密通道里跑 LDAP 协议。另一种做法是在 389 上用 StartTLS 在明文连接内升级加密。Active Directory 域控默认同时监听 389 与 636,其中 636 使用的证书通常由域内 CA 签发,因此证书生命周期直接决定认证链路是否可用。
基本信息
| 服务 | ldaps(早期称 sldap) |
|---|---|
| 协议 | TCP(注册表同时列有 UDP) |
| 规范 | LDAP 体系 + TLS(RFC 4511 / RFC 4513) |
| 典型实现 | AD 域控、OpenLDAP、389 Directory Server |
| 安全等级 | 可对内网开放,禁止直接暴露公网 |
典型使用场景
- 应用对接 AD 做账号认证,用 ldaps:// 替代 389 明文 Simple Bind
- 同步目录数据:同步工具按计划拉取用户与组对象
- 加固收敛:把 389 上的明文绑定逐步迁移到 LDAPS 或 StartTLS
- 排障:证书过期或链不完整时,用 openssl 手工握手快速定位
- 审计:在目录服务日志里定位仍在发明文绑定的客户端来源
连通与证书验证
连通与证书验证
openssl s_client -connect dc01.example.com:636 -servername dc01.example.com </dev/null 2>/dev/null | openssl x509 -noout -subject -issuer -dates
# RootDSE 通常可匿名读取,适合做握手与响应验证
ldapsearch -x -H ldaps://dc01.example.com:636 -b '' -s base '(objectClass=*)'
# StartTLS 路线:ldapsearch -x -ZZ -H ldap://dc01.example.com389 与 636 两条路线
| 路线 | 端口 | 特点 |
|---|---|---|
| LDAPS | 636/tcp | 先 TLS 后 LDAP,配置简单,端口独立 |
| StartTLS | 389/tcp | 连接内升级,同一端口兼容明文与加密 |
| 明文 LDAP | 389/tcp | 可被链路侧抓取,含 Simple Bind 口令 |
| 全局编录 | 3268/3269 | 域林范围查询,TLS 形态走 3269 |
强制加密的落地要点
强制加密的落地要点
域控侧:启用 LDAP 通道绑定与 LDAP 签名策略(LdapEnforceChannelBinding 等)
应用侧:统一改为 ldaps:// 或 -ZZ(StartTLS),禁止 389 明文 Simple Bind
Java 侧:把新根证书导入 truststore 后再切换,避免信任链断裂
验证:目录服务日志中的 2889 类事件可定位仍在发明文绑定的来源客户端必须校验证书链与主机名;只加密不验身份等于给中间人留门,攻击者可代理加密流量后读到全部绑定口令与查询结果。
证书轮换演练:LDAPS 依赖域控证书,更换 CA 或证书前先确认所有依赖方信任新链(Java 应用要把新根证书导入 truststore),并把演练安排在业务低峰,避免证书自动替换造成的中断窗口。
排障顺序建议:先用 openssl 握手确认证书有效且主机名匹配,再用 ldapsearch 验证能否读取 RootDSE,最后才怀疑账号与权限;跳过前两步容易把证书问题误判成密码错误。