如何使用ldapsearch连接ldaps?

OpenLDAP

1 前言

一个问题,一篇文章,一出故事。
今天因为调试KeyCloak与LDAPs集成,需要使用ldapsearch命令测试AD的LDAPs证书,因此整理本章节。
Linux下ldapsearch默认会校验服务端SSL证书。AD LDAPS常见两种情况:
– AD证书由内部CA签发,ldapsearch命令行的服务器没有导入根证书 → 握手直接失败
– 证书域名不匹配(证书 CN≠cmdschool.org)

2 最佳实践

2.1 忽略证书直接测试LDAPs

ldapsearch -x -H ldaps://dc01.cmdschool.org:636 -w "adminpwd" -D "CN=admin,CN=Users,DC=cmdschool,DC=.org" -b DC=cmdschool,DC=.org -o TLS_REQCERT=never "(&(sAMAccountName=will)(objectCategory=person))"

2.2 配置信任的企业根证书后测试LDAPs

2.2.1 修改信任配置

cp /etc/openldap/ldap.conf /etc/openldap/ldap.conf.default
vim /etc/openldap/ldap.conf

启用如下配置,

TLS_CACERT     /etc/pki/tls/cert.pem

2.2.2 查看信任的根证书库真实目录

ls -l /etc/pki/tls/cert.pem

可见如下显示

lrwxrwxrwx. 1 root root 49 Aug 19  2024 /etc/pki/tls/cert.pem -> /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem

2.2.3 将信任证书增加到证书库中

chmod u+w /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
vim /etc/pki/tls/cert.pem

假设信任的根证书内容如下,

# cmdschool.org Root CA
-----BEGIN CERTIFICATE-----
MIIFMzCCAxugAwIBAgIQWeCUcrgvbJhDbpLwGzKUXTANBgkqhkiG9w0BAQ0FADAs
#...
7RtVkZaI5hCT4WgnEzdF2wOZp1peaXlfrXNmMv9spANkphGl4Z2i
-----END CERTIFICATE-----

2.2.4 恢复证书库到不可写状态

chmod u-w /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem

2.2.5 测试LDAPs

ldapsearch -x -H ldaps://dc01.cmdschool.org:636 -w "adminpwd" -D "CN=admin,CN=Users,DC=cmdschool,DC=.org" -b DC=cmdschool,DC=.org "(&(sAMAccountName=will)(objectCategory=person))"
没有评论

发表回复

OpenLDAP
如何使用tcpdump分析LDAPs的通讯?

1 前言 一个问题,一篇文章,一出故事。 今天因为调试KeyCloak与LDAPs集成,由于teln …

OpenLDAP
如何获取AD LDAPs证书?

1 前言 一个问题,一篇文章,一出故事。 今天因为调试KeyCloak与LDAPs集成,需要获取AD …

OpenLDAP
如何基于AD组筛选AD的LDAP用户?

1 前言 一个问题,一篇文章,一出故事。 今天遇到一个项目需要根据用户的AD组进行筛选用户,因此需要 …