【问题标题】:ldap_bind to secure LDAP server returns "Unknown CA"ldap_bind 以保护 LDAP 服务器返回“未知 CA”
【发布时间】:2014-01-08 21:03:46
【问题描述】:

尝试配置 PHP 应用程序以安全地针对远程 LDAP 服务器进行身份验证,但遇到了困难。 ldap 工具已安装,我可以连接到远程 LDAP 服务器,但检查 error_log,我看到了

Unable to bind to server: Can't contact LDAP server

这是由在我的应用程序中调用 ldap_bind 触发的。 ldap_connect 不返回错误。我已经验证我可以使用以下方式连接到 ldap 服务器:

openssl s_client -connect ldap.service.company.com:636

SSL-Session:
Protocol  : TLSv1.2
Cipher    : AES256-SHA
Session-ID: (snip)
Session-ID-ctx: 
Master-Key: (snip)
Key-Arg   : None
Krb5 Principal: None
PSK identity: None
PSK identity hint: None
Start Time: 1389213908
Timeout   : 300 (sec)
Verify return code: 0 (ok)

tcpdumpwireshark 被用来监控和分析我的应用程序尝试 LDAP 身份验证时的网络流量。

tcpdump -s 1514 port 636 -w capture_file

wireshark 发现一个致命错误:

TLSv1   Alert (Level: Fatal, Description: Unknown CA)

Apache 的 ssl.conf 配置指向具有正确权限的文件,启动/重启 httpd 时不会显示错误。

帮助/指针表示赞赏。如果我能提供更多数据,请告诉我。

【问题讨论】:

    标签: php apache ssl active-directory ldap


    【解决方案1】:

    您可能在 ldap 主机的 636 端口上使用签名证书。客户端(您的 PHP 服务器)拒绝此证书作为不在其已知/有效 ca 中的证书颁发机构。 获取真正的 SSL 证书或在您的网络服务器上安装证书路径。

    如果且仅当您的网络服务器和 ldap 主机位于同一网络中并且由您单独管理并且您确定无法在主机之间捕获数据时,您可以选择不使用 SSL/TLS 版本的ldap 协议..

    【讨论】:

    • 我们的应用服务器 (app.company.com) 拥有来自 InCommon 的签名证书。这在 Apache 的 ssl.conf 文件中被引用,并且证书可以被 apache 读取。
    • 抱歉这个听起来很无知的问题,但是“证书路径”到底是什么——我们是在谈论 InCommon 证书的目录路径吗?如果是这样,该路径是如何“安装”的?
    • Path = dir 路径确实不常见!但是 ssl.conf 如何帮助您的 ldap 函数“了解”ssl?
    • ldap_bind 会使用 Apache 配置中的 SSL 设置,还是其他?你提到我可能需要安装路径。为此使用了什么工具,以便我可以在手册页上阅读?
    • 不,我认为您应该使用 /etc/openldap/ldap.conf(或检查服务器配置以获取确切的文件):) ssl.conf 用于让您的 apache 托管启用 ssl 的站点
    猜你喜欢
    • 2015-05-21
    • 1970-01-01
    • 2013-10-24
    • 1970-01-01
    • 1970-01-01
    • 2017-01-15
    • 2015-11-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多