我正在尝试在主从 ldap 服务器之间添加 TLS 安全复制。没有 TLS 的复制运行良好。
我从奴隶遇到这个错误:slapd_client_connect: URI=ldap://master.domain.com Error, ldap_start_tls failed (-11)
这是我的配置:
----- Master -----
/etc/ldap/ldap.conf
URI ldap://master.domain.com/
TLS_CACERT /etc/ssl/cacert.pem
TLS_REQCERT demand
/etc/ldap/slapd.d/cn=config.ldif
olcTLSCertificateKeyFile: /etc/ssl/master-key.pem
olcTLSCertificateFile: /etc/ssl/master-cert.pem
----- Slave -----
/etc/ldap/ldap.conf
URI ldap://slave.domain.com/
TLS_CACERT /etc/ssl/cacert.pem
TLS_REQCERT demand
/etc/ldap/slapd.d/cn=config.ldif
olcTLSCertificateKeyFile: /etc/ssl/slave-key.pem
olcTLSCertificateFile: /etc/ssl/slave-cert.pem
/etc/ldap/slapd.d/cn=config/olcDatabase{1}mdb.ldif
olcSyncrepl: rid=001, provider=ldap://master.domain.com binddn="cn=readonly,ou=users,dc=master,dc=domain,dc=com" bindmethod=simple credentials="mypass" searchbase="dc=master,dc=domain,dc=com" type=refreshAndPersist timeout=0 network-timeout=0 retry="60 +" starttls=critical tls_reqcert=demand
这是我已经检查/尝试过的:
- 两台服务器上的证书都归用户所有
openldap
- 两台服务器上 cacert.pem 的指纹相同
- 证书的有效期是好的
- cacert.pem中的cn等于主服务器的cn
- 从站可以使用以下命令在主站上搜索:
ldapsearch -ZZ -x -H master.domain.com -b "ou=groups,dc=master,dc=domain,dc=com"
- 更改从
olcTLS
值以使用主证书 - 使用
ldaps://
而不是ldap:// + starttls
(ldapsearch -ZZ -H ldaps://
正在工作)
经过网上的一些研究,它经常谈论CA证书(其中的cn,文件的所有者,......)但我已经检查了这些案例。
你知道问题出在哪里吗?
与我在多个教程中阅读的相反,即使我们使用自签名证书,我们也需要在 olcTLS 变量中配置 CA 文件。
我相信该
/etc/ldap/ldap.conf
文件没有被读取,因为 OpenLDAP 现在使用具有“新”配置系统的 slapd.d 文件夹。这是我最终为激活主/从复制的 TLS 所做的配置:
笔记 :
cn
的mods check (objectClass: value #2 invalid per syntax)
错误,slave 会错过 master 上加载的一些 schema