AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 70903
In Process
SethG
SethG
Asked: 2009-10-03 11:45:39 +0800 CST2009-10-03 11:45:39 +0800 CST 2009-10-03 11:45:39 +0800 CST

无法弄清楚为什么 apache LDAP 身份验证失败

  • 772

昨天突然间,我的一台 apache 服务器无法连接到我的 LDAP (AD) 服务器。我在该服务器上运行了两个站点,当用户登录到任一站点时,这两个站点都使用 LDAP 对我的 AD 服务器进行身份验证。两天前它一直运行良好。由于未知原因,截至昨天,它停止工作。错误日志只说:

auth_ldap authenticate: user foo authentication failed; URI /FrontPage [LDAP: ldap_simple_bind_s() failed][Can't contact LDAP server], referer: http://mysite.com/

我想也许我的自签名 SSL 证书已经过期,所以我为 mysite.com 创建了一个新证书,但没有为服务器主机名本身创建一个,问题仍然存在。我启用了调试级别的日志记录。它显示了与 LDAP 服务器的完整 SSL 事务,并且在我收到“无法联系 LDAP 服务器”消息之前,它似乎一直没有错误地完成。我可以从这个服务器上的命令行运行 ldapsearch,我可以登录到它,它也使用 LDAP,所以我知道服务器可以连接和查询 LDAP/AD 服务器。只有apache无法连接。

谷歌搜索没有任何结果,所以我在这里问。任何人都可以提供有关此问题的见解吗?

这是 apache 配置中的 LDAP 部分:

<Directory "/web/wiki/">
    Order allow,deny
    Allow from all
    AuthType Basic
    AuthName "Login"
    AuthBasicProvider ldap
    AuthzLDAPAuthoritative off
    #AuthBasicAuthoritative off
    AuthLDAPUrl ldaps://domain.server.ip/dc=full,dc=context,dc=server,dc=name?sAMAccountName?sub
    AuthLDAPBindDN cn=ldapbinduser,cn=Users,dc=full,dc=context,dc=server,dc=name
    AuthLDAPBindPassword password
    require valid-user
</Directory>
linux
  • 14 14 个回答
  • 42274 Views

14 个回答

  • Voted
  1. dmourati
    2011-09-16T10:10:37+08:002011-09-16T10:10:37+08:00

    来自 httpd 服务器/LDAP 客户端的数据包跟踪显示有关 CA 未知的消息。

    TLSv1 警报(级别:致命,描述:未知 CA)

    我在 httpd.conf 中找到并添加了以下选项:

      LDAPVerifyServerCert          off
    

    这解决了我在 CentOS 6 下的问题。CentOS 5 httpd 服务器不需要任何修改,并且在没有选项的情况下一直工作。

    • 9
  2. Sam Kingston
    2009-11-06T15:30:16+08:002009-11-06T15:30:16+08:00

    我之前在 Windows 2003 上使用 AD 时遇到过类似的问题:我发现的解决方案是不使用完整的 DN 进行绑定,而是使用 user@domain 语法:

    AuthLDAPBindDN [email protected]
    
    • 2
  3. Eric Dennis
    2009-10-03T15:56:37+08:002009-10-03T15:56:37+08:00

    您是否有权访问 LDAP 服务器中的日志?它们可能有助于解决此问题。

    • 1
  4. shollyman
    2009-11-17T14:50:49+08:002009-11-17T14:50:49+08:00

    当包更新导致客户端 ldap.conf(通常是 /etc/ldap.conf 或 /etc/openldap/ldap.conf)发生更改并将 TLS_REQCERT 选项重置为更严格的设置时,我已经看到了这种情况。它可以正确协商 SSL,但最终仍会失败,因为它无法验证来自受信任根的证书链。

    • 1
  5. Ger Apeldoorn
    2009-11-25T23:55:41+08:002009-11-25T23:55:41+08:00

    您可能需要检查服务器的时钟。如果时间差超过几分钟,则验证票将无效。

    虽然这不完全是错误消息,但“另一台服务器突然遇到同样的问题”部分可能表明存在这样的问题。

    • 1
  6. tore-
    2010-03-17T05:36:57+08:002010-03-17T05:36:57+08:00

    您需要导入 LDAP CA 证书才能使用 LDAPS

    • 1
  7. jldugger
    2010-04-03T15:15:45+08:002010-04-03T15:15:45+08:00

    我有一个类似的问题,我通过运行以下命令确定了这个问题:

    openssl s_client -connect $ldap_host:636 -state -nbio 2>&1. 我认为 mod_ldap 在下面使用 openssl,所以这对于调试应该是相当一致的。

    我将它与我知道正在运行的另一台 SSL 加密服务器进行了比较。正确验证的 SSL 连接将显示一条链到根 CA 并返回 0。SSL 验证失败将给出一个数字和原因。您可以使用输出来确定出了什么问题。

    就我而言,LDAP 服务器证书由 Verisign 签名,它使用Intermediate CA certs。OpenSSL 无法验证证书并且连接被拒绝(“连接被服务器拒绝”没有帮助)。

    • 1
  8. Sum Buddy
    2012-01-11T15:12:27+08:002012-01-11T15:12:27+08:00

    我有一个类似的问题。我可以使用 openssl 获得证书,我可以在相同端口上使用 ldapsearch 通过 SSL 查询 Active Directory。最后,我更改为 Microsoft 全局目录端口 3268 或 3269,它们都可以工作。Microsoft Windows 2003 服务器已经打了补丁,但是这发生在问题开始发生前几天。

    • 1
  9. Kyle Smith
    2009-10-16T18:03:50+08:002009-10-16T18:03:50+08:00

    我在我们所有的服务器上实施 LDAPS,也遇到了这个问题。如果您恢复为纯文本 LDAP,它会消失吗(不理想,但有助于了解问题的根源)。如果是这样,我还没有找到解决方案,但也许我们可以一起隔离 authnz_ldap 中的错误。

    • 0
  10. Zac Thompson
    2009-10-27T22:36:56+08:002009-10-27T22:36:56+08:00

    我假设您的命令行实验使用与您的 apache 配置中相同的“绑定用户”。如果没有,您应该检查您是否拥有正确的当前密码。

    过去,我曾经不得不为 AD 域使用全局编录端口而不是标准 LDAP 端口。我不记得为什么。对于上面 url 中的 ldaps,这将是端口 3269。

    • 0

相关问题

  • Linux 主机到主机迁移

  • 如何在 Linux 机器上找到有关硬件的详细信息?

  • 如何在 Linux 下监控每个进程的网络 I/O 使用情况?

  • 在 RHEL4 上修改 CUPS 中的现有打印机设置

  • 为本地网络中的名称解析添加自定义 dns 条目

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve