我已经设置了一个Active Directory服务器并configuration了LDAP-over-SSL,这对于域中的机器来说工作正常,但是因为它使用由AD的证书服务提供的证书,所以在其他地方引发了问题。
我正尝试使用openssl s_client从Debian框连接到LDAP-over-SSL端口,并且出现此错误:
Verify return code: 21 (unable to verify the first certificate)
我已将新的根CA证书添加到/usr/share/ca-certificates/extra/my-new-root-ca.crt并运行update-ca-certificates ,并使用以下命令:
openssl s_client -CAfile /usr/share/ca-certificates/extra/my-new-root-ca.crt -showcerts -connect my.domain.com:636
而这个:
openssl s_client -showcerts -connect my.domain.com:636
在输出的顶部将这些错误传给我:
depth=0 verify error:num=20:unable to get local issuer certificate verify return:1 depth=0 verify error:num=27:certificate not trusted verify return:1 depth=0 verify error:num=21:unable to verify the first certificate verify return:1
另外,这个命令:
ldapsearch -d8 -x -LLL -H ldaps://my.domain.com -D cn=username -w password -b "dc=my,dc=domain,dc=com" -s sub "(objectClass=user)" givenName
网我这个输出:
TLS: can't connect: (unknown error code). ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)
所以,看起来openssl s_client和ldapsearch都没有从/etc/ssl/certs/ca-certificates.crt获取证书。 实际上有可能得到openssl接受我的证书吗?
OpenSSL可能会有点震惊..它信任哪些证书 – 有时它不会使用系统的可信证书存储。 在openssl.cnf调整它的configuration,如果你想让它信任正确的商店。
对于ldapsearch ,同样的处理方式 – 您需要在ldap.conf设置可信证书以使其实际使用受信任的证书,该选项为TLS_CACERT 。