O problema foi realmente causado pelo SELinux de uma maneira complicada.
Para pessoas futuras que encontrarão esta resposta pelo google, aqui está um texto de erro exato:
[root@va21 ~]# ldapsearch -d 1 -v -x -H ldaps://localhost:636
ldap_url_parse_ext(ldaps://localhost:636)
ldap_initialize( ldaps://localhost:636/??base )
ldap_create
ldap_url_parse_ext(ldaps://localhost:636/??base)
ldap_sasl_bind
ldap_send_initial_request
ldap_new_connection 1 1 0
ldap_int_open_connection
ldap_connect_to_host: TCP localhost:636
ldap_new_socket: 3
ldap_prepare_socket: 3
ldap_connect_to_host: Trying 127.0.0.1:636
ldap_pvt_connect: fd: 3 tm: -1 async: 0
TLS: certdb config: configDir='/etc/openldap/certs' tokenDescription='ldap(0)' certPrefix='' keyPrefix='' flags=readOnly
TLS: using moznss security dir /etc/openldap/certs prefix .
TLS: error: tlsm_PR_Recv returned 0 - error 21:Is a directory
TLS: error: connect - force handshake failure: errno 21 - moznss error -5938
TLS: can't connect: TLS error -5938:Encountered end of file.
ldap_err2string
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)
e abre a saída s_client:
[root@va21 ~]# openssl s_client -connect localhost:636 -showcerts
CONNECTED(00000003)
140066435413832:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:s23_lib.c:184:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 113 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
---
Isso significa (deve significar!) que os certificados ssl não estão disponíveis / legíveis / acessíveis / válidos quando o servidor slapd é inicializado.
Eu estava preparando a imagem da VM para o teste de controle de qualidade de alguns aplicativos. Este aplicativo desativa o SELinux durante a instalação. Então, eu tive o SELinux desativado durante a configuração do openldap e não tive nenhum problema quando os certificados foram colocados na pasta / certs.
Meus problemas começaram quando tive que implantar o openldap com a mesma configuração em uma VM limpa ou reinicializar um já existente. O SELinux foi habilitado aqui e impediu que o slapd lesse certificados do lugar não permitido. Os registros de serviço ou a saída não continham nenhuma reclamação clara sobre a negação de permissão. Eu deveria colocar os certificados em algum lugar em / etc / ssl / certs / e / etc / openldap / certs para que funcione.