![如何在 smbpasswd 配置中为 LDAP 后端服务器设置 CA 证书文件](https://linux22.com/image/509626/%E5%A6%82%E4%BD%95%E5%9C%A8%20smbpasswd%20%E9%85%8D%E7%BD%AE%E4%B8%AD%E4%B8%BA%20LDAP%20%E5%90%8E%E7%AB%AF%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%AE%BE%E7%BD%AE%20CA%20%E8%AF%81%E4%B9%A6%E6%96%87%E4%BB%B6.png)
我在 smbpasswd、LDAP 后端服务器和 SSL/TLS 证书方面遇到了问题。我运行 smbpasswd 的客户端计算机是 Debian Etch 计算机,而 Ldap 服务器是运行在 Solaris 上的 Sun DS。以下所有情况都发生在客户端上。
当我通过在 smb.conf 中设置“ldap ssl = no”禁用 SSL 时,smbpasswd 程序可以正常运行。
当我设置“ldap ssl = start tls”时,smbpasswd 会打印以下消息,并且在询问任何密码之前会有很长的超时时间
Failed to issue the StartTLS instruction: Connect error
Connection to LDAP server failed for the 1 try!
..... long delay .....
New SMB password:
Retype new SMB password:
Failed to issue the StartTLS instruction: Connect error
Connection to LDAP server failed for the 1 try!
smbpasswd: /tmp/buildd/openldap2-2.1.30/libraries/liblber/io.c:702: ber_get_next: Assertion `0' failed.
Aborted
我使用“ldapsearch -ZZ”进行了一些测试。起初它不起作用,但在我将 TLS_CACERT 行添加到 /etc/ldap/ldap.conf、/etc/libnss-ldap.conf 和 /etc/pam_ldap.conf 后,它开始起作用。因此,所有这些文件中相关的 TLS 部分是:
ssl start_tls
tls_checkpeer no
tls_cacertfile /path/to/ca-root.pem
TLS_CACERT /path/to/ca-root.pem
但是 smbpasswd 程序继续给出错误。
我尝试创建包含以下内容的 /etc/smbldap-tools/smbldap.conf 文件(在查阅了 debian 文档中有关 smbldap-tools 包的信息后)但据我所知,smbpasswd 附带 samba-common 包,并且不使用 smbldap-tools 实用程序的配置。
verify="optional"
cafile="/path/to/ca-root.pem"
我的问题是:如何设置 smbpasswd 程序使用哪个 SSL CA 证书?
答案1
您无需指定 SSL 客户端应使用哪个 CA 证书;相反,您只需将所有 CA 证书附加到同一文件即可。根据哪个 CA 签署了服务器证书,它会尝试在根证书文件中找到它。
您遇到了一个错误,并且您正在运行 openldap 2.2;将其升级到最新版本:2.4.x ldap。那么你就没问题了。