Ssl

複製已經執行時如何在 OpenLDAP 上啟用 TLS

  • January 18, 2018

我按照這本很棒的手冊在兩台主機之間設置了複製。複製執行良好 - 幾個月以來就已經如此。

現在我也想啟用 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- ]

這裡有什麼問題?

回到開頭,刪除證書、密鑰和資訊的文件,然後是所有新內容。

有效。

很明顯,我之前做錯了什麼。儘管 SSL 證書和密鑰看起來沒問題,但實際上並非如此。而且,更令人驚訝的是:插入三個值不僅僅是愚蠢地插入值,它們顯然在設置時得到驗證。

嘗試將您的 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 可能很挑剔,因為它只能孤立地查看每個更改。

引用自:https://serverfault.com/questions/889210