PHP 5.3.1 + Ldap + SSL + Apache + Moodle

Após atualização das versões :

Apache: 2.2.11  para : 2.2.14

PHP : 5.2.8       para: 5.3.1

Moodle : 1.9.6  para: 1.9.7

SO : Windows 2008

A autenticação do Moodle no Ldap (Active Directory ) deixou de funcionar, ou seja, não se conseguia conectar ao servidor do Active Directory para autenticar os usuários.

O Active Directory estava rodando sobre conexão segura (ssl) na porta : 636

Para testar o motivo da não conexão ao Active Directory, fiz um script simples em PHP

<?php

$ip_ad = “ldaps://ip_do_servidor_do AD”;
$user_ad=”esquemauser@nome_dominio”;
$pass_ad = “senha_user_esquemauser”;
$port_ad=”636″;
$dn=”dc=nome_dominio”;

//Conecta ao AD
$ds=ldap_connect($ip_ad ,$port_ad) or die(ldap_error()).”Nâo foi possível conectar ao AD”;

ldap_set_option($ds, LDAP_OPT_PROTOCOL_VERSION, 3);
ldap_set_option($ds, LDAP_OPT_REFERRALS, 0);
$r=ldap_bind($ds,$user_ad,$pass_ad);

if(!$r)
echo “ERROR”;
else
echo “OK”;

//mostra erros do ldap
ldap_get_option($ds,LDAP_OPT_ERROR_STRING,$error);
echo $error;
?>

onde era obtido o seguinte erro do Ldap :

error:14090086:SSL
routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed

após várias consultas ao google consegui localizar o bug do PHP em

http://bugs.php.net/bug.php?id=48866

onde nos diz que temos que simplesmente alterar o caminho do arquivo : ldap.conf

anteriormente era : C:\OpenLDAP\sysconf\ldap.conf

e na versão 5.3 deverá ser em : c:\ldap.conf

e não se esquecer de restartar o Windows ( não basta apenas restartar o apache)

Indico a leitura dos seguintes artigos :