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