Я пытаюсь заставить свой сервер CentOS доверять сертификату, который я установил с сервера Active Directory (ранее я преобразовал .cer в .pem).
Когда я пытаюсь подключиться, информация об отладке:
[root@web1 cacerts]# ldapsearch -d1 -v -D SOMEDN\pretenduser01 -w SOMEPASSWORD -H ldaps://1.2.3.4:636 -x
ldap_url_parse_ext(ldaps://1.2.3.4:636)
ldap_initialize( ldaps://1.2.3.4/??base )
ldap_create
ldap_url_parse_ext(ldaps://1.2.3.4:636/??base)
ldap_sasl_bind
ldap_send_initial_request
ldap_new_connection 1 1 0
ldap_int_open_connection
ldap_connect_to_host: TCP 1.2.3.4:636
ldap_new_socket: 3
ldap_prepare_socket: 3
ldap_connect_to_host: Trying 1.2.3.4:636
ldap_pvt_connect: fd: 3 tm: -1 async: 0
TLS: certdb config: configDir='/etc/openldap/cacerts' tokenDescription='ldap(0)' certPrefix='' keyPrefix='' flags=readOnly
TLS: using moznss security dir /etc/openldap/cacerts prefix .
TLS: loaded CA certificate file /etc/openldap/cacerts/some_pem_file.pem.
TLS: certificate [CN=SRV-DC3-RG.hiddendomain.co.uk] is not valid - error -8179:Peer's Certificate issuer is not recognized..
TLS: error: connect - force handshake failure: errno 21 - moznss error -8179
TLS: can't connect: TLS error -8179:Peer's Certificate issuer is not recognized..
ldap_err2string ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)
Я действительно не знаю, каковы следующие шаги в решении этой проблемы ... Я могу нормально подключиться без SSL, но это не очень хорошо :)
Вам необходимо доверять сертификату, которым был подписан предоставленный вам сертификат. Обычно это доверительный корень (сертификат ЦС), который вы можете получить из хранилища сертификатов компьютера, на котором запущен AD CS, хотя он также может быть промежуточным (в этом случае должна быть представлена вся цепочка, поэтому доверительный корень все еще тот, кому можно доверять). Вы должны иметь возможность просто присоединить сертификат к концу /etc/openldap/cacerts/some_pem_file.pem
и все работает.