openssl s_client 忽略 /usr/share/ca-certificates 中的自定义根 CA 证书

openssl s_client 忽略 /usr/share/ca-certificates 中的自定义根 CA 证书

我已经设置了一个 Active Directory 服务器并配置了 LDAP-over-SSL,这对于域中的机器来说运行良好,但是由于它使用由 AD 的证书服务提供的证书,因此在其他地方会引起问题。

我正在尝试使用 从 Debian 框连接到 LDAP-over-SSL 端口openssl s_client,但出现了以下错误:

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 接受我的证书?

答案1

OpenSSL 对其信任的证书可能有点.. 不稳定.. - 有时它不会使用系统受信任的证书存储。openssl.cnf如果您希望让它信任正确的存储,请调整其配置。

对于ldapsearch,相同类型的交易 - 您需要设置受信任的证书ldap.conf以使其实际使用受信任的证书,该选项是TLS_CACERT

相关内容