Pour que le LDAPS fonctionne sur le PHP, il est nécessaire :
- d'activer le module ldap dans PHP
- de créer un fichier /etc/ldap/ldap.conf
avec 2 possibilités :
1- Si on ne veut pas vérifier les certificats :
TLS_REQCERT never

2- Si on veut vérifier les certificats :
TLS_REQCERT hard
# Mettre la chaine complete des CA qui gerent les serveurs LDAP
TLS_CACERT /etc/ssl/certs/ca.pem
# Ou utiliser celle de base du système :
# TLS_CACERT	/etc/ssl/certs/ca-certificates.crt
# En 2010 : la ligne ci-dessous ne sert a rien car GNUTls ne lit pas les repertoires
#TLS_CACERTDIR /etc/ssl/certs
On peut cumuler les AC dans ca.pem.
En mode hard, si on se connecte et que le serveur répond un certificat qui n'est pas à son nom, on est rejeté.

Si on change la politique (surtout de never vers hard), il est NECESSAIRE de relancer apache (sinon il n'y a pas de prise en compte de la modification tout de suite et cela fait des effets de bord).

Si le certificat tente d'être vérifié, mais que les AC ne sont pas disponibles, le message d'erreur suivant apparait :
Unable to bind to server: Can't contact LDAP server

Il est possible de trouver d'autres options : voir man ldap.conf

La connexion PHP se fait alors par :
ldap_connect("ldaps://ldap.domain.tld");
Des cookies d'analyse d'audience sont utilisés sur ce site