当复制已运行时,如何在 OpenLDAP 上启用 TLS

当复制已运行时,如何在 OpenLDAP 上启用 TLS

我按照以下步骤在两台主机之间设置复制很棒的手册。复制运行良好 - 已经几个月了。

现在我也想启用 TLS(复制不需要 TLS)。

由于主机装有 Ubuntu Linux,因此我遵循指南创建自签名 SSL 证书,现在卡在修改服务器配置的步骤上。这是我的 LDIF 文件:

$ cat tls.ldif 
dn: cn=config
changetype: modify
add: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/ssl/certs/ldap_slapd_cacert.pem

dn: cn=config
changetype: modify
add: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/ssl/private/ldap_slapd_key.pem

dn: cn=config
changetype: modify
add: olcTLSCertificateFile
olcTLSCertificateFile: /etc/ssl/certs/ldap_slapd_cert.pem

导入命令失败:

$ ldapmodify  -H ldapi:// -Y EXTERNAL -f ~/tls.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn=config"
ldap_modify: Server is unwilling to perform (53)

使用 IP 地址、TCP 端口和凭证的组合不会产生任何不同。

OLC 镜像模式开启:

$ slapcat -n 0
[ -cut- ]
dn: olcDatabase={0}config,cn=config
objectClass: olcDatabaseConfig
olcDatabase: {0}config
olcAccess: {0}to * by     
 dn.exact=gidNumber=0+uidNumber=0,cn=peercred,cn=extern
 al,cn=auth manage by * break
structuralObjectClass: olcDatabaseConfig
entryUUID: c7822d8e-30c4-1037-8e8b-4fac89b22db9
createTimestamp: 20170918135531Z
olcRootDN: cn=admin,cn=config
refreshAndPersist retry="5 5 300 5" timeout=1
olcMirrorMode: TRUE
[ -cut- ]

这里有什么问题?

答案1

尝试将您的 LDIF 文件修改为如下所示:

dn: cn=config
changetype: modify
add: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/ssl/certs/ldap_slapd_cacert.pem
-
add: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/ssl/private/ldap_slapd_key.pem
-
add: olcTLSCertificateFile
olcTLSCertificateFile: /etc/ssl/certs/ldap_slapd_cert.pem

这意味着您的三项添加将被视为一项更改,而不是三项单独的更改。OpenLDAP 可能比较挑剔,因为它只会孤立地查看每项更改。

答案2

回到开始,删除证书、密钥和信息文件,然后所有内容都是新的。

有效。

显然,我之前做错了什么。虽然 SSL 证书和密钥看起来没问题,但实际上却有问题。更令人惊讶的是:插入这三个值不仅仅是愚蠢的插入值,它们显然在设置时就已验证。

相关内容