Я установил репликацию между двумя хостами, следуя этому замечательному руководству. Репликация идет нормально - уже через пару месяцев.
Теперь я тоже хочу включить 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 Mirror включен:
$ 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, вероятно, придирчив, потому что видит каждое изменение изолированно.