1

我正在使用 Zend Framework 1.12 构建的 PHP 应用程序从 LAMP 系统针对 Windows AD 服务器进行身份验证。我正在使用 Zend_Ldap 进行连接。如果我不使用安全连接(即 LDAP over LDAPS),身份验证过程可以正常工作。但是,我希望能够从 Web App 执行其他操作,例如在 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 的经验?

4

1 回答 1

3

好的,进一步阅读表明我的问题与服务器有关。

我需要将 CA 证书从 Windows AD 服务器导入到 /etc/openldap/certs 中我的 Linux 机器上的证书存储区,然后编辑 /etc/openldap/ldap.conf 使其显示为:

TLS_CACERT /etc/openldap/certs/mydoamin.com.pem

我现在可以使用 LDAPS 安全地连接到 Windows AD Server。

于 2012-12-20T08:11:57.757 回答