我必须激活 SSL 才能与 ldap 进行安全通信,我使用 Letsencrypt .pem 文件(chain、fullchain、cert 和 privkey)。
我按照一些页面的步骤进行操作,但在测试命令中没有任何效果。
我所做的是:
我创建了 .pem 文件的副本
我将所有文件的所有者更改为 openldap:openldap
我创建了一个 .ldif 文件来进行下一步更改(我们将其命名为 serv.ldif)
dn: cn=config
replace: olcTLSCACertificateFile
olcTLSCACertificateFile: /routeToCloneCerts/domain.com/fullchain.pem
-
replace: olcTLSCertificateFile
olcTLSCertificateFile: /routeToCloneCerts/domain.com/cert.pem
-
replace: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /routeToCloneCerts/domain.com/privkey.pem
(之所以替换是因为我可以直接更改它们)
现在我运行它
ldapmodify -Y EXTERNAL -H ldapi:/// -f serv.ldif
我编辑了文件“/etc/default/slapd”以添加 ldaps:///
SLAPD_SERVICES="ldap:/// ldapi:/// ldaps:///"
然后
sudo systemctl restart slapd
最后我可以执行测试命令
ldapwhoami -x -H ldaps://domain.com
但它说
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)
LDAP 所需的两个端口在 UFW 防火墙中均打开,并且 /etc/ldap 中没有任何存档经过手动编辑,仅使用 ldapmodify,证书的克隆位于 /etc/ldap/sasl2 中。
提前致谢。
编辑 我运行命令 netstat 和 tcp 上的端口 636 并且正在监听。
sudo netstat -tulpn | grep 636
tcp 0 0 0.0.0.0:636 0.0.0.0:* LISTEN 1214/slapd
tcp6 0 0 :::636 :::* LISTEN 1214/slapd
nmap
PORT STATE SERVICE
22/tcp open ssh
111/tcp open rpcbind
389/tcp open ldap
636/tcp open ldapssl
2049/tcp open nfs
编辑 3:完成 这周我会在这里分享我的做法(抱歉我有点忙)。