首页 > 解决方案 > Active Directory LDAPS 通过自签名证书启用。但是 PHP 客户端无法通过 AD 服务器进行身份验证

问题描述

我已经配置了一个带有 ldaps 的 Active Directory,并带有一个通过 AD CS 角色创建的自签名证书。我在这篇文章的帮助下进行了配置。我想在一台 linux 机器上连接一个 php 应用程序,以通过 LDAPS 与 AD 目录连接

https://www.trustzone.com/microsoft-ad-ldap-2012/

所以之后我在 Windows Server 2012 机器上验证了与 ldp.exe 工具的连接。它验证连接已建立。所以我在 AD 中创建了用户,以便在 linux 机器上获得我的一个 php 应用程序的身份验证。因此,当我尝试通过 LDAP 进行通信时,它可以工作。但是当我尝试通过 LDAPS 连接时,它失败了。我从客户端提供了用于身份验证的 IP 地址和主机名。

正如我之前所说,我尝试连接 LDAP 并成功。但是它并没有失败,但是当我提供主机名时,它永远无法进行身份验证;但是当我给IP它成功了。但是当涉及到 LDAPS 时,这两种情况都失败了。我根据上面的链接为主机名创建了证书。我还将客户端计算机上的主机名添加到 /etc/hosts 文件中。

这是由于自签名证书问题吗?我真的是 Active Directory 的新手。

我希望通过 LDAPS 以及 LDAP 进行身份验证。但是对于 LDAPS,它没有经过身份验证。我错过了什么或配置错误。

标签: phplinuxactive-directoryldapself-signed

解决方案


是的,很可能是证书。一方面,您必须使用分配给证书的域名 - 您无法使用 IP 进行连接。

但是,客户端计算机必须信任证书才能使连接正常工作。

对于测试,您可以通过将其放入您的 ldap.conf 文件(可能在/etc/ldap/ldap.conf)中来告诉它甚至不检查证书:

TLS_REQCERT never

这样,它仍将使用证书进行加密,但不会验证有关证书的任何内容。

但是对于测试以外的任何事情,您都应该确保证书受到适当的信任,因为证书的一部分工作是验证您正在与正确的服务器通信。这里有一些说明(您需要先将证书导出到文件中):https ://www.novell.com/coolsolutions/tip/5838.html


推荐阅读