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

时间:2019-04-11 06:58:47

标签: php linux active-directory ldap self-signed

我已为Active Directory配置了具有ldap的Active Directory,该LDAP具有通过AD CS角色创建的自签名证书。我在本文的帮助下进行了配置。我想在linux计算机上连接一个php应用程序,以通过LDAPS与AD Directory连接

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,它不会得到认证。我缺少什么或配置错误。

1 个答案:

答案 0 :(得分:0)

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

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

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

TLS_REQCERT never

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

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