Hello,
 
After creating a self-signed certificate as per the, OpenLDAP Admin Guide, TLS/SSL was enabled. The CN used when creating the certificates was the hostname of the LDAP server - "node01". However, when conducting further TLS/SSL tests there appears to be a handshaking error between the client and server. Additionally, when checking the Server certificates using the " openssl s_client -connect :636 -state -CAfile /var/certs/cacert.pem -cert /var/certs/servercrt.pem -key /var/certs/serverkey.pem" command it indicates that the client private certificate key can't be loaded and expecting a start line (see below). Appreciate any additional info. Config data as follows:
 

CLIENT CONFIG DATA

/etc/ldap.conf

host node01
base dc=S80,dc=com
uri ldaps://node01/
ldap_version 3
port 636
timelimit 120
bind_timelimit 120
bind_policy soft
idle_timelimit 3600
ssl on
tls_checkpeer yes
tls_cacertfile /etc/openldap/cacerts/cacert.pem
tls_cacertdir /etc/openldap/cacerts
tls_reqcert never
tls_ciphers TLSv1
pam_password md5

/etc/openldap/ldap.conf

URI ldaps://node01:636
HOST node01
BASE dc=S80,dc=com
TLS_CACERT /etc/openldap/cacerts/cacert.pem
TLS_CACERTDIR /etc/openldap/cacerts
TLS_REQCERT never

/etc/openldap/cacerts/cacert.pem

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 0 (0x0)
        Signature Algorithm: sha1WithRSAEncryption
        Issuer: C=US, ST=Virginia, O=XXX, OU=S80, CN=node01/emailAddress=XXX
        Validity
            Not Before: Feb 21 15:10:48 2008 GMT
            Not After : Feb 20 15:10:48 2011 GMT
        Subject: C=US, ST=Virginia, O=XXX, OU=S80, CN=node01/emailAddress=XXX
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
            RSA Public Key: (1024 bit)
                Modulus (1024 bit):
                    00:da:b9:b0:ba:ca:95:f1:fc:48:6e:e9:d5:5d:d5:
                    22:aa:9e:38:19:7d:0c:14:65:44:fa:12:69:f6:98:
                    6a:38:43:11:29:20:a8:a2:98:a9:00:ce:40:19:e5:
                    56:46:1b:85:d6:99:91:5f:7b:a9:19:ac:7b:7c:cc:
                    42:13:88:99:99:af:98:52:9b:a4:60:77:ca:e7:ae:
                    41:97:c0:8c:5e:f9:a1:44:c0:6b:29:ec:3f:9b:1e:
                    59:dc:05:f5:b8:a8:ed:71:7c:db:51:26:1f:59:ee:
                    04:fc:b0:24:77:64:2e:be:df:a7:1a:91:34:81:f4:
                    a6:d6:b9:26:64:63:2f:19:95
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Basic Constraints:
                CA:FALSE
            Netscape Comment:
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier:
                C1:AA:5F:32:3D:7F:80:FA:4A:A1:A2:24:BC:66:AB:CE:C3:5A:A8:E0
            X509v3 Authority Key Identifier:
                keyid:C1:AA:5F:32:3D:7F:80:FA:4A:A1:A2:24:BC:66:AB:CE:C3:5A:A8:E0

    Signature Algorithm: sha1WithRSAEncryption
        37:84:43:62:ed:98:c3:31:85:24:3e:8d:d8:88:9f:4d:8f:00:
        dc:08:21:ee:9d:19:07:21:c0:70:cf:b1:38:94:49:34:de:42:
        93:5e:51:79:95:6b:d6:2d:7f:92:f7:da:49:d0:92:65:81:8f:
        ed:0e:24:0a:0d:17:cd:73:fe:c2:86:9c:40:22:04:af:7b:d6:
        1e:ba:2c:5a:f4:d8:52:ab:8f:94:45:ae:bc:11:07:06:0d:da:
        11:6f:f5:1a:63:ae:05:0a:64:32:b1:f0:5c:eb:21:6b:d1:ff:
        bb:0a:42:a9:a9:23:f3:ab:d4:9f:b4:26:4e:d4:ea:7b:0a:26:
        df:a4
-----BEGIN CERTIFICATE-----
.....XXX

 

-----END CERTIFICATE-----

SERVER CONFIG DATA

Server IP: 192.168.10.1
Hostname: node01
Suffix: dc=S80,dc=com

Certificate Common Name (CN): node01

/etc/openldap/slapd.conf

 TLSCACertificateFile /var/certs/cacert.pem
 TLSCertificateFile /var/certs/servercrt.pem
 TLSCertificateKeyFile /var/certs/serverkey.pem

database           ldbm
suffix                 "dc=S80,dc=com"

SERVER KEY (serverkey.pem)
-----BEGIN CERTIFICATE REQUEST-----
...XXX
-----END CERTIFICATE REQUEST-----

ERRORS OBSERVED (SERVER)
 

[root@node01 certs]# openssl s_client -connect :636 -state -CAfile /var/certs/cacert.pem -cert /var/certs/servercrt.pem -key /var/certs/serverkey.pem
unable to load client certificate private key file
8086:error:0906D06C:PEM routines:PEM_read_bio:no start line:pem_lib.c:644:Expecting: ANY PRIVATE KEY

[root@node01 certs]# ldapsearch -d127 -x -H ldaps://node01 uid=uid
ldap_create
ldap_url_parse_ext(ldaps://node01)
ldap_bind
ldap_simple_bind
ldap_sasl_bind
ldap_send_initial_request
ldap_new_connection 1 1 0
ldap_int_open_connection
ldap_connect_to_host: TCP node01:636
ldap_new_socket: 3
ldap_prepare_socket: 3
ldap_connect_to_host: Trying 192.168.10.1:636
ldap_connect_timeout: fd: 3 tm: -1 async: 0
TLS trace: SSL_connect:before/connect initialization
tls_write: want=133, written=133
  0000:  80 83 01 03 01 00 5a 00  00 00 20 00 00 39 00 00   ......Z... ..9.. 
  0010:  38 00 00 35 00 00 16 00  00 13 00 00 0a 07 00 c0   8..5............ 
  0020:  00 00 33 00 00 32 00 00  2f 03 00 80 00 00 66 00   ..3..2../.....f. 
  0030:  00 05 00 00 04 01 00 80  00 00 63 00 00 62 00 00   ..........c..b.. 
  0040:  15 00 00 12 00 00 09 06  00 40 00 00 65 00 00 64   .........@..e..d 
  0050:  00 00 14 00 00 11 00 00  08 00 00 06 04 00 80 00   ................ 
  0060:  00 03 02 00 80 28 9b 68  41 39 df 12 52 12 ab 41   .....(.hA9..R..A 
  0070:  20 11 b0 b9 d0 76 3d 5c  2d f6 3a 00 49 28 07 d4    ....v=\-.:.I(.. 
  0080:  67 8d 26 70 fb                                     g.&p.            
TLS trace: SSL_connect:SSLv2/v3 write client hello A
tls_read: want=7, got=7
  0000:  15 03 01 00 02 02 28                               ......(          
TLS trace: SSL3 alert read:fatal:handshake failure
TLS trace: SSL_connect:error in SSLv2/v3 read server hello A
TLS: can't connect.
ldap_perror
ldap_bind: Can't contact LDAP server (-1)
        additional info: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure

 
ERRORS OBSERVED (CLIENT)
 

[root@node03 ~]# openssl s_client -connect node01:636 -showcerts -state -CAfile /etc/openldap/cacerts/cacert.pem
CONNECTED(00000003)
SSL_connect:before/connect initialization
SSL_connect:SSLv2/v3 write client hello A
SSL3 alert read:fatal:handshake failure
SSL_connect:error in SSLv2/v3 read server hello A
3531:error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure:s23_clnt.c:562:

 

[root@node03 ~]# ldapsearch -d127 -x -H ldaps://node01 uid=uid
ldap_create
ldap_url_parse_ext(ldaps://node01)
ldap_bind
ldap_simple_bind
ldap_sasl_bind
ldap_send_initial_request
ldap_new_connection 1 1 0
ldap_int_open_connection
ldap_connect_to_host: TCP node01:636
ldap_new_socket: 3
ldap_prepare_socket: 3
ldap_connect_to_host: Trying 192.168.10.1:636
ldap_connect_timeout: fd: 3 tm: -1 async: 0
TLS trace: SSL_connect:before/connect initialization
tls_write: want=133, written=133
  0000:  80 83 01 03 01 00 5a 00  00 00 20 00 00 39 00 00   ......Z... ..9.. 
  0010:  38 00 00 35 00 00 16 00  00 13 00 00 0a 07 00 c0   8..5............ 
  0020:  00 00 33 00 00 32 00 00  2f 03 00 80 00 00 66 00   ..3..2../.....f. 
  0030:  00 05 00 00 04 01 00 80  00 00 63 00 00 62 00 00   ..........c..b.. 
  0040:  15 00 00 12 00 00 09 06  00 40 00 00 65 00 00 64   .........@..e..d 
  0050:  00 00 14 00 00 11 00 00  08 00 00 06 04 00 80 00   ................ 
  0060:  00 03 02 00 80 51 97 63  fc ee 43 25 a8 d2 e4 8c   .....Q.c..C%.... 
  0070:  ef 63 6e e0 97 b7 cd c2  1e 14 97 c9 50 5d 82 6b   .cn.........P].k 
  0080:  3f f5 d0 6f a4                                     ?..o.            
TLS trace: SSL_connect:SSLv2/v3 write client hello A
tls_read: want=7, got=7
  0000:  15 03 01 00 02 02 28                               ......(          
TLS trace: SSL3 alert read:fatal:handshake failure
TLS trace: SSL_connect:error in SSLv2/v3 read server hello A
TLS: can't connect.
ldap_perror
ldap_bind: Can't contact LDAP server (-1)
        additional info: error:14077410:SSL routines:SSL23_GET_SERVER_HELLO:sslv3 alert handshake failure