Ubuntu客户端配置Google安全LDAPS(SSSD)遇证书信任问题
解决ldapsearch连接Google LDAPS时的证书信任错误
问题概述
按照官方文档配置Ubuntu客户端的SSSD对接Google安全LDAPS后,SSSD服务运行正常,但直接执行ldapsearch命令时出现证书不信任错误,尽管openssl s_client验证证书有效。
解决方法
1. 执行ldapsearch时指定CA证书路径
openssl命令显式指定了CA证书路径,但ldapsearch默认可能未加载系统根CA证书。执行命令时添加LDAPTLS_CACERT环境变量:
LDAPTLS_CERT=/var/google_ldap.crt LDAPTLS_KEY=/var/google_ldap.key LDAPTLS_CACERT=/etc/ssl/certs/ca-certificates.crt ldapsearch -H ldaps://ldap.google.com:636 -b dc=mydomain,dc=com '(mail=my.name@mydomain.com)' -d 7
2. 配置全局ldap.conf避免重复指定环境变量
编辑/etc/ldap/ldap.conf,添加以下配置项,让所有ldap客户端工具默认使用正确的证书:
TLS_CACERT /etc/ssl/certs/ca-certificates.crt TLS_CERT /var/google_ldap.crt TLS_KEY /var/google_ldap.key
3. 匹配SSSD的TLS版本限制
SSSD配置中禁用了TLS 1.3(ldap_tls_cipher_suite = NORMAL:!VERS-TLS1.3),而ldapsearch可能默认尝试使用TLS 1.3导致握手失败。执行命令时添加TLS版本限制的环境变量:
LDAPTLS_CERT=/var/google_ldap.crt LDAPTLS_KEY=/var/google_ldap.key LDAPTLS_CACERT=/etc/ssl/certs/ca-certificates.crt LDAPTLS_PROTOCOL_MIN=3.1 LDAPTLS_PROTOCOL_MAX=3.2 ldapsearch -H ldaps://ldap.google.com:636 -b dc=mydomain,dc=com '(mail=my.name@mydomain.com)' -d 7
(注:3.1对应TLS 1.1,3.2对应TLS 1.2,与SSSD的配置保持一致)
4. 检查证书文件权限
确保证书和密钥文件的权限允许当前用户读取:
sudo chmod 644 /var/google_ldap.crt sudo chmod 600 /var/google_ldap.key sudo chown $USER:$USER /var/google_ldap.key
内容的提问来源于stack exchange,提问作者overflow_warrior_27
相关产品推荐
相关产品推荐

