I'm attempting to authenticate users in an OpenLDAP 2.4 directory which requires TLS, and the TLS portion appears to be failing. The LDAP server is using a wildcard certificate of *.wiredrive.com from GoDaddy, on a server with the hostname of la.wiredrive.com. This is being used successfully for PAM based authentication of ssh and auth basic for other services so I do know it does play. Appended is the Splunk logging output for LDAP cranked to the debug level. You can see that the initial anonymous bind works so DNS is functioning, however when it attempts the actual tree search which requires TLS it fails with a 'confidentiality required' error leading me to believe it's not actually utilizing the cert.
08-29-2011 13:56:14.548 -0700 DEBUG ScopedLDAPConnection - Initializing with LDAP URL 'ldap://la.wiredrive.com:389' 08-29-2011 13:56:14.548 -0700 DEBUG ScopedLDAPConnection - Attempting anonymous bind 08-29-2011 13:56:14.550 -0700 DEBUG ScopedLDAPConnection - Bind successful 08-29-2011 13:56:14.550 -0700 DEBUG ScopedLDAPConnection - Attempting to read entry for dn: 'ou=people,dc=la,dc=wiredrive,dc=com' 08-29-2011 13:56:14.550 -0700 DEBUG ScopedLDAPConnection - No constraints, returning empty filter 08-29-2011 13:56:14.551 -0700 ERROR ScopedLDAPConnection - Read for DN 'ou=people,dc=la,dc=wiredrive,dc=com' gave error: Confidentiality required 08-29-2011 13:56:14.551 -0700 DEBUG ScopedLDAPConnection - Attempting to load entries... 08-29-2011 13:56:14.551 -0700 ERROR ScopedLDAPConnection - Could not read invalid entry at DN ou=people,dc=la,dc=wiredrive,dc=com 08-29-2011 13:56:14.559 -0700 DEBUG ScopedLDAPConnection - Successfully performed unbind
The modified ldap.conf file in Splunk's etc/openldap/ directory. I've also attempted to set REQCERT to demand with no luck.
ssl start_tls TLS_REQCERT never TLS_CACERT $SPLUNK_HOME/etc/openldap/certs/godaddy.pem TLS_CACERTDIR $SPLUNK_HOME/etc/openldap/cert
Here is my check of the CA certificate, which as mentioned is the same that I am using successfully for PAM.
# openssl verify godaddy.pem godaddy.pem: OK
Has anybody figured this out. The official documentation I've read doesn't seem to address cases where TLS 1.2 is the only option for a splunk LDAP client to communicate with an openldap server.
I notice on the first line of your log, it's connecting to "ldap://la.wiredrive.com:389".
Work through the steps under "Set up LDAP via Splunk Web" on this page:
Setup User Authentication with LDAP
It addresses those specific problems.