Bonjour,

Je souhaiterais faire communiquer un serveur APACHE avec un serveur openLDAP en utilisant le protocole LDAPS mais malgré mes nombreuses recherches je n'y arrive toujours pas.

Voici donc les faits :

J'ai un serveur LDAP (srvLDAP) sur lequel j'ai installé openLDAP. J'ai aussi via openSSL pu obtenir des certificats auto signés. En tout j'ai trois fichiers :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
cacert.pem
srvLDAP.pem
srvLDAP.key
J'ai configuré mes fichiers slapd.conf et ldap.conf de cette manière :

slapd.conf
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
TLSCertificateFile      ./ssl/srvLDAP.pem
TLSCertificateKeyFile   ./ssl/srvLDAP.key
TLSCACertificateFile    ./ssl/cacert.pem
ldap.conf
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
BASE    <ma branche>
URI     ldaps://srvLDAP/
TLS_CACERT      ./ssl/cacert.pem
TLS_REQCERT     demand
Après avoir lancé mon service, je peux penser que le protocole ldaps fonctionne, puisque lorsque je fais :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
 
C:\Program Files\OpenLDAP>ldapsearch -b o=exemple,dc=fr -s sub -x -w pass-D
cn=admin,o=exemple,dc=fr -H ldaps://srvLDAP/
Maintenant je souhaiterais, pourvoir à partir d'un serveur apache distant, communiquer avec le serveur LDAP en utilisant le protocole ldaps.

voici mon code php (simplifié)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
<h2>LDAP OPENLDAP LDAPS</h2>
<?php
 
 
$host="ldaps://srvldap";
$port="636";
$ds=ldap_connect($host,$port);
ldap_set_option($ds,LDAP_OPT_PROTOCOL_VERSION,3);
$r=ldap_bind($ds,"cn=admin,o=exemple,dc=fr","pass" );
$sr=ldap_search($ds,"o=exemplec,dc=fr",("objectClass=maclasse" ));
$info=ldap_get_entries($ds,$sr);
print $info["count"]." enregistrements trouvés.";
   ?>
Et bien sur j'ai l'erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
Unable to bind to server: Can't contact LDAP server
Je sais que je dois configurer des certificats dans la configuration de APACHE (sur un win 2003), le problème c'est que je n'y arrive toujours pas (toujours la même erreur) et je suis un peu perdu.

De plus, dans ce topic, ils parlent d'un fichier ldaprc et ldap.conf pour apache , mais malgrès les avoir crées, j'ai l'impression qu'ils ne sont pas prises en compte.

Je souhaiterais donc si possible avoir quelques pistes/info pour résoudre ce problème sur lequel je suis depuis plusieurs jours maintenant.

par avance merci