我正在使用Zend Framework 1.12从使用Zend Framework 1.12构建的PHP应用程序中针对Windows AD Server的LAMP系统进行身份验证。我正在使用Zend_Ldap进行连接。如果我不使用安全连接即LDAP over LDAPS,则身份验证过程可以正常工作。但是,我希望能够从Web应用程序执行其他操作,例如重置AD服务器上的密码。但是,这需要安全连接。
首先是一些背景信息
我的Web应用程序使用自签名证书从HTTPS连接(https:// intranet)运行。自签名证书已添加到AD服务器上的受信任存储区。
当我运行我的脚本时,我收到以下错误消息:
Error: 0x51 (Can't contact LDAP server; TLS error -8179:Peer's Certificate issuer is not recognized.): ldaps://192.168.0.x
我的代码如下:
$options = array(
'host' => 192.168.0.2,
'accountDomainName' => domain.internal,
'accountDomainNameShort' => domain,
'accountCanonicalForm' => 3,
'baseDn' => "OU=Establishments,DC=domain,DC=internal"
'username' => 'admin',
'password' => 'password'
'useSsl' => true
);
$ldap = new Zend_Ldap($options);
$ldap->bind();
我的问题是:
我的问题出现在我的代码或服务器配置的某个地方吗?有没有人有Zend_Ldap和AD的经验?
答案 0 :(得分:3)
好的,稍微进一步阅读后发现我的问题与服务器有关。
我需要将CA AD服务器中的CA证书导入到/ etc / openldap / certs中我的Linux机器上的证书存储区,然后编辑/etc/openldap/ldap.conf,使其显示为:
TLS_CACERT /etc/openldap/certs/mydoamin.com.pem
我现在可以安全地将LDAPS连接到Windows AD Server。