我有一个来自大公司 AD LDAP 的证书链,我可以检查如下:
$ openssl rehash tmp_cert_dir/
$ echo | openssl s_client -showcerts -connect 10.188.1.101:636 2</dev/null \
| openssl verify -CApath tmp_cert_dir/
stdin: OK
$
所以我想目录中的 2 个证书tmp_cert_dir
足以验证 LDAP 服务器。
但是当使用ldapsearch
commando时,我无法使用LDAPTLS_CACERTDIR
环境变量。
$ LDAPTLS_CACERTDIR=/root/tmp_cert_dir ldapsearch -x -W -D mydomain\\mylogin -H ldaps://10.188.1.101 $SECRET_SEARCH
Enter LDAP Password:
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)
$
事实上,当使用禁用证书身份验证时它会回答LDAPTLS_REQCERT
,然后研究成功回答。
$ LDAPTLS_REQCERT=never ldapsearch -x -W -D mydomain\\mylogin -H ldaps://10.188.1.101 $SECRET_SEARCH
Enter LDAP Password:
(<correct answer here>)
在之前对互联网的研究中,我发现很多人建议放弃服务器身份验证,但我想使用这种身份验证。
我怎样才能ldapsearch
输出一些错误消息而不是默默地连接失败?如何验证我的 LDAP 服务器?