OpenLDAP 镜像模式复制在负载均衡器后面因 TLS 而失败

OpenLDAP 镜像模式复制在负载均衡器后面因 TLS 而失败

我有两个 OpenLDAP 服务器,它们都运行 TLS。它们是:

ldap1.mydomain.com
ldap2.mydomain.com

我还有一个具有自己的 DNS 名称的负载均衡器集群:

ldap.mydomain.com

SSL 证书的 CN 为 ldap.mydomain.com,SAN 为 ldap1.mydomain.com 和 ldap2.mydomain.com。

一切正常......除了镜像模式复制。

我的镜像模式复制设置如下:

ldap配置文件

TLS_REQCERT allow

cn=配置.ldif

olcServerID: 1 ldap://ldap1.mydomain.com
olcServerID: 2 ldap://ldap2.mydomain.com

在 ldap1 上,olcDatabase{1}hdb.ldif

olcMirrorMode: TRUE
olcSyncrepl: {0}rid=001 provider=ldap://ldap2.mydomain.com bindmethod=simple bindmethod=simple binddn="cn=me,dc=mydomain,dc=com" credentials="REDACTED" starttls=yes searchbase="dc=mydomain,dc=com" schemachecking=on type=refreshAndPersist retry="60 +"

在 ldap2 上,olcDatabase{1}hdb.ldif

olcMirrorMode: TRUE
olcSyncrepl: {0}rid=001 provider=ldap://ldap1.mydomain.com bindmethod=simple bindmethod=simple binddn="cn=me,dc=mydomain,dc=com" credentials="REDACTED" starttls=yes searchbase="dc=mydomain,dc=com" schemachecking=on type=refreshAndPersist retry="60 +"

以下是我在系统日志中遇到的错误:

Dec  1 21:05:01 ldap1 slapd[6800]: slap_client_connect: URI=ldap://ldap2.mydomain.com DN="cn=me,dc=mydomain,dc=com" ldap_sasl_bind_s failed (-1)
Dec  1 21:05:01 ldap1 slapd[6800]: do_syncrepl: rid=001 rc -1 retrying
Dec  1 21:05:08 ldap1 slapd[6800]: conn=1111 fd=20 ACCEPT from IP=ldap.mydomain.com:2295 (IP=ldap1.mydomain.com:636)
Dec  1 21:05:08 ldap1 slapd[6800]: conn=1111 fd=20 closed (TLS negotiation failure)

有什么想法吗?我已经在 OpenLdap 上工作太久了。

答案1

已修复。有两个问题。

1) 证书 CSR 清楚地显示了两个单独的 LDAP 服务器的主题备用名称。我使用通常用于签名的 openssl 命令对其进行了签名,但从未检查过证书本身。结果发现证书上没有主题备用名称,因为这些名称需要特殊的 v3 扩展。这是我使用的命令。

openssl x509 -req -days 3650 -in ldap.csr -signkey ldapskey.pem -out cert.pem -extensions v3_req -extfile /etc/ssl/openssl.cnf

2) 我在 olcSyncrepl 指令中设置的 REDACTED 密码实际上是 SSHA 哈希。看起来这不太好。我用明文密码替换了 SSHA 哈希。

哦,我还清理了 syncprov 覆盖,这样每个实际数据库中只存在一个覆盖 - 而不是在配置数据库中。

顺便说一句,我发现了一篇 Howard Chu 的帖子,他说 rid 必须在服务器配置中是唯一的,而不是在跨服务器的镜像配置中。因此,听起来 rid 在两个服务器上都可以是 001,但无论如何,我将其保留为 001 和 002,这不会对任何人造成伤害。

答案2

正如所述16.5.3. 镜像模式配置

您还需要确保摆脱每个镜像节点对都是不同的......

因此,在 ldap2 上更改rid=001rid=002

相关内容