Ssl
複製已經執行時如何在 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- ]
這裡有什麼問題?
回到開頭,刪除證書、密鑰和資訊的文件,然後是所有新內容。
有效。
很明顯,我之前做錯了什麼。儘管 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 可能很挑剔,因為它只能孤立地查看每個更改。