Ldap et ssl signé

Bonjour,

Afin d’assurer la compatibilité avec un service externe, je dois installer un certificat signé ( genre cacert.org ) sur un serveur. Pour le moment, les requêtes ldap fonctionnent avec un certificat auto-signé, généré par openssl, mais dès que je remplace ce certificat auto-signé par un certificat fourni par cacert.org, les requêtes ne passent plus.
L’installation d’un certificat signé cacert.org pour apache et pour postfix/dovecot n’a posé aucun soucis.

Cela fait maintenant plusieurs semaines que je cherche, que je lis des réponses sur des fora en anglais en français, en allemand, et souvent des réponses du type “c’est bon c’est résolu” sans la moindre indication et là je commence à en perdre les cheveux.

Les infos techniques :

Contenu de /etc/slapd.conf :

TLSCACertificateFile /etc/ssl/private/ca-certificates.crt TLSCertificateFile /etc/ssl/private/cert-ldap.crt TLSCertificateKeyFile /etc/ssl/private/cert-ldap.key

Droits dans /etc/ssl/private/ :

-rw-r----- 1 root ssl-cert 1854 févr. 2 22:31 ca-certificates.crt -rw-r----- 1 root ssl-cert 2921 févr. 2 22:31 cert-ldap.crt -rw-r----- 1 root ssl-cert 1968 févr. 2 22:31 cert-ldap.key

Contenu de /etc/ldap.conf :

[mono]base dc=domain,dc=local
ldap_version 3
nss_initgroups_ignoreusers amavis,arpwatch,avahi,backup,bin,bind,bittorrent,clamav,colord,cyrus,daemon,dhcpd,games,gnats,hplip,identd,irc,
klog,landscape,libuuid,list,lp,mail,man,messagebus,mysql,nagios,news,ntpd,openldap,postfix,postgres,proxy,pykota,
root,sshd,statd,sync,sys,syslog,tftp,uucp,vboxadd,whoopsie,www-data
pam_password md5
uri ldap://localhost/[/mono]

Contenu de /etc/ldap/ldap.conf ( serveur client en locahost ) :

[code]ldap_version 3

URI ldaps://127.0.0.1

SIZELIMIT 0

TIMELIMIT 0

DEREF never

BASE dc=domain,dc=local

TLS_REQCERT never[/code]

Voilà, à partir du moment où je mets le certificat signé et que je relance le service slapd :

[code]# ldapsearch -x -H ldap://localhost
( donne tous les résultats )

ldapsearch -x -ZZ -H ldap://localhost

ldap_start_tls: Connect error (-11)
additional info: A TLS packet with unexpected length was received.

ldapsearch -x -H ldaps://localhost

ldap_sasl_bind(SIMPLE): Can’t contact LDAP server (-1)

ldapsearch -x -H ldaps://localhost -d127

ldap_url_parse_ext(ldaps://localhost)
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 localhost:636
ldap_pvt_connect: fd: 3 tm: -1 async: 0
tls_write: want=117, written=117
0000: 16 03 00 00 70 01 00 00 6c 03 03 52 fd 53 ff 34 …p…l…R.S.4
0010: 29 40 b3 6b 63 b1 4a 1d 93 99 bd 4b 98 d5 f2 81 )@.kc.J…K…
0020: 19 b0 14 e5 77 1b d8 cc a4 21 a5 00 00 30 00 33 …w…!..0.3
0030: 00 67 00 45 00 39 00 6b 00 88 00 16 00 32 00 40 .g.E.9.k…2.@
0040: 00 44 00 38 00 6a 00 87 00 13 00 66 00 2f 00 3c .D.8.j…f./.<
0050: 00 41 00 35 00 3d 00 84 00 0a 00 05 00 04 01 00 .A.5.=…
0060: 00 13 ff 01 00 01 00 00 0d 00 0a 00 08 04 02 04 …
0070: 01 02 01 02 02 …
tls_read: want=5, got=0
…[/code]

Une connexion via openssl ne donne aucune erreur et montre le bon certificat :

Tout ça en remplaçant un certificat auto-signé par un certificat signé…
Ce qui est vraiment bizarre, c’est que le module externe dont je parle au début du sujet, peut malgré ces erreurs se connecter au serveur ldap via l’url ldaps://ip_du_serveur, mais tous les autres services basés sur ldap ne fonctionnent plus.

Si quelqu’un avait une piste, cela me serait du plus grand secours, car là je ne sais plus dans quelle direction chercher.

Merci d’avance :wink: