# Ldap et ssl signé

**URL:** <https://www.debian-fr.org/t/ldap-et-ssl-signe/61354>\
**Category:** Programmation\
**Created:** [Février 21, 2016, 7:57 UTC](https://www.debian-fr.org/t/ldap-et-ssl-signe/61354 "2016-02-21T19:57:30Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Arnaud](https://www.debian-fr.org/user_avatar/www.debian-fr.org/arnaud/32/4098_2.png) [@Arnaud](https://www.debian-fr.org/u/Arnaud)\
**Post date:** [Février 21, 2016, 7:57 UTC](https://www.debian-fr.org/t/ldap-et-ssl-signe/61354/1 "2016-02-21T19:57:30Z")

</div>

Bonjour,

Afin d’assurer la compatibilité avec un service externe, je dois installer un certificat signé ( genre [cacert.org](http://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](http://cacert.org), les requêtes ne passent plus.  
L’installation d’un certificat signé [cacert.org](http://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 :

```auto

```

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 😉
