不知何故,我无法配置 slapd 以在 Debian Lenny 上启用 ldaps 支持。看来 OpenLDAP 是用 GnuTLS 而不是 OpenSSL 编译的,这可能是问题的一部分。
我已将以下选项添加到 slapd.conf:
TLS密码套件 TLS_RSA_AES_256_CBC_SHA TLS 证书文件 /etc/ssl/certs/myhost.pem TLSCACertificatePath /etc/ssl/certs/ TLSCertificateKey文件 /etc/ssl/private/myhost.pem TLSVerifyClient 从不
并将以下内容添加到 ldap.conf 中:
URI ldap:/// ldaps:/// TLS_REQCERT 从不
如果我尝试启动 slapd,日志中会出现以下错误:
主要:TLS init def ctx 失败:-64
会不会是 openssl 生成的证书无法被 GnuTLS 读取?
你们中有人在 Debian 上配置了 OpenLDAP 并支持 ldaps 吗?如果是,任何关于如何使其工作的提示都将不胜感激。
谢谢。
编辑:找到了一个有效的 TLSCipherSuite。
答案1
Openssl 和 GnuTLS 之间的密码名称不一样。
GnuTLS 密码示例:
slapd.conf:
TLSCipherSuite TLS_RSA_AES_256_CBC_SHA
获取 GnuTLS 密码名称列表:
$ gnutls-cli -l
并确保“cert”文件可读且归 openldap 用户所有。您还可以将 openldap 用户添加到 ssl-cert 组。
答案2
问题解决了。
服务器密钥只能由 root 和组“ssl-cert”读取。因此,我将用户“openldap”添加到组“ssl-cert”,但不知何故 slapd 无法读取服务器密钥。我现在复制了密钥并将其所有权更改为“openldap”,现在它可以正常工作了。
答案3
这也可能是因为 gnutls 放弃了对 md2 和 md5 算法的支持。请参阅 lenny 上的 gnutls 发行说明。