我正在尝试利用现有的(已完全配置且可以正常运行的)Samba AD DC作为XWiki和其他应用程序的身份验证。
因此,我首先尝试从XWiki服务器成功完成ldapsearch。 以下命令在Samba服务器上有效,但在XWiki客户端上无效:
ubuntu@xwiki:~$ ldapsearch -x -LLL -E pr=200/noprompt -H ldaps://10.0.1.191/ -D "CN=Administrator,CN=Users,DC=ad,DC=nitssolutions,DC=com" -w 'SambaNovi2018' -b 'DC=ad,DC=nitssolutions,DC=com' -s sub '(sAMAccountName=*)' cn mail memberOf
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)
但是,如果我这样做:
ping 10.0.1.191
我得到:
ubuntu@xwiki:~$ ping 10.0.1.191
PING 10.0.1.191 (10.0.1.191) 56(84) bytes of data.
64 bytes from 10.0.1.191: icmp_seq=1 ttl=64 time=135 ms
64 bytes from 10.0.1.191: icmp_seq=2 ttl=64 time=138 ms
64 bytes from 10.0.1.191: icmp_seq=3 ttl=64 time=146 ms
^C
--- 10.0.1.191 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 135.741/140.317/146.970/4.832 ms
如果我这样做:
telnet 10.0.1.191 636
我可以连接。
编辑:附加信息:
我在-d 1
命令行中添加了ldapsearch
,现在我得到了:
ubuntu@xwiki:~$ ldapsearch -d 1 -x -LLL -E pr=200/noprompt -H ldaps://10.0.1.191/ -D "CN=Administrator,CN=Users,DC=ad,DC=nitssolutions,DC=com" -w 'SambaNovi2018' -b 'DC=ad,DC=nitssolutions,DC=com' -s sub '(sAMAccountName=*)' cn mail memberOf
ldap_url_parse_ext(ldaps://10.0.1.191/)
ldap_create
ldap_url_parse_ext(ldaps://10.0.1.191:636/??base)
ldap_sasl_bind
ldap_send_initial_request
ldap_new_connection 1 1 0
ldap_int_open_connection
ldap_connect_to_host: TCP 10.0.1.191:636
ldap_new_socket: 3
ldap_prepare_socket: 3
ldap_connect_to_host: Trying 10.0.1.191:636
ldap_pvt_connect: fd: 3 tm: -1 async: 0
attempting to connect:
connect success
TLS: peer cert untrusted or revoked (0x42)
TLS: can't connect: (unknown error code).
ldap_err2string
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)
请特别注意这一行:
TLS: peer cert untrusted or revoked (0x42)
我将尝试进一步研究此错误,但到目前为止,我仍然陷于困境...
EDIT2:更多其他信息:
当我在Samba服务器上使用-d 1
参数运行此命令时,尽管有以下命令,该命令仍然有效:
TLS: peer cert untrusted or revoked (0x42)
在调试输出中。...
继续挖掘……。
帮助?
答案 0 :(得分:0)
我走了,再次回答我自己的问题。我应该经常在这里发帖。帮助我清楚地指出问题所在,这不可避免地导致找到解决方案。
无论如何,解决方案是:
我的sambadc机器和xwiki客户端机器上都有一个文件/etc/ldap/ldap.conf
,但是内容有所不同。
sambadc机器具有:
#
# LDAP Defaults
#
# See ldap.conf(5) for details
# This file should be world readable but not world writable.
#BASE dc=example,dc=com
#URI ldap://ldap.example.com ldap://ldap-master.example.com:666
#SIZELIMIT 12
#TIMELIMIT 15
#DEREF never
# TLS certificates (needed for GnuTLS)
#TLS_CACERT /etc/ssl/certs/ca-certificates.crt
TLS_REQCERT allow
曾工作过。
但是,我的xwiki机器具有:
#
# LDAP Defaults
#
# See ldap.conf(5) for details
# This file should be world readable but not world writable.
#BASE dc=example,dc=com
#URI ldap://ldap.example.com ldap://ldap-master.example.com:666
#SIZELIMIT 12
#TIMELIMIT 15
#DEREF never
# TLS certificates (needed for GnuTLS)
TLS_CACERT /etc/ssl/certs/ca-certificates.crt
失败了。
当我注释掉TLS_CACERT
行并添加了TLS_REQCERT
行时,一切都按预期开始工作。