我正在努力在 LDAP 后面设置一个 Web 应用程序。我们在 CentOS 7.6 (Core) 上运行 Apache 2.4.6。Kerberos 已配置并在服务器上运行,以通过 SSH 和 SCP 提供用户访问。
在我的 /var/www/html 中,我有三个站点:Prod、Test、LDAPTest。Prod 和 Test 没有设置任何 LDAP 设置,并且对整个网络开放以供访问。
我已经为 SSL 设置了自签名证书,它似乎在所有三个站点上都按预期工作。此外,我还更新了 SELinux 配置以允许 Apache 通过 LDAP 进行连接,尽管我很难记住该命令是什么。(httpd_can_connect_ldap = 1)
运行 httpd -M 显示,bot、ssl_module 和 ldap_module 已加载(共享)。
在我的 httpd.conf 文件中,我有以下条目:
<Directory "/var/www/html/LDAPTest">
AuthType Basic
AuthName "LDAP TEST - Login"
AuthBasicProvider ldap
#AuthzLDAPAuthoritative on
AuthLDAPURL ldaps://DOMAIN.org:389
#AuthLDAPURL "ldaps://DOMAIN.org:389/DC=DOMAIN,DC=org?sAMAccountName?sub?(objectClass=*)"
AuthLDAPBindDN "[email protected],OU=Service Accounts,DC=DOMAIN,DC=org"
AuthLDAPBindPassword LDAPUSERPASSWORD
require valid-user
</Directory>
无论我做什么,只要目录设置了 LDAP 设置,我就会收到一个弹出窗口,要求提供身份验证信息(好......),结果是错误 500 页面。
虽然我已将 httpd.conf 设置为调试日志级别,但是在 Apache 的 error_log 文件中没有看到任何真实信息。
我需要查找什么/在哪里才能找出问题的真正原因?
编辑:添加了 SELinux 开关 | 添加了 httpd -M 信息
答案1
昨天大约 8 个小时后,今天大约 3 个小时后,我就能够让 LDAP 与 Centos 7 上的 Apache 2.4 一起工作。
LDAPTrustedGlobalCert CA_BASE64 /etc/httpd/ssl/apache_selfSigned.crt
LDAPTrustedMode SSL
LDAPVerifyServerCert Off
<Directory "/var/www/html/LDAPTest">
Options all
Order deny,allow
#Allow from All
AuthName "Company.com Intranet"
AuthType Basic
AuthBasicProvider ldap
#AuthzLDAPAuthoritative off
AuthLDAPUrl "ldap://DC.COM/DC=DC,DC=COM?sAMAccountName?sub?(objectClass=*)"
AuthLDAPBindDN ::ACCOUNT::
AuthLDAPBindPassword ::PASSWORD::
#Require valid-user
Require ldap-user :ADUSER1: :ADUSER2: :ADUSER3:
#Satisfy any
</Directory>
我认为我一直忽略的是配置 /etc/openldap/ldap.conf... 新手错误,是吗?
我简单地添加了 BASE 和 URI,然后安装了 ldapsearch,然后立即就可以连接了。此后不久,我确定了上面显示的 HTTPD.conf,现在一切似乎都正常了。
谢谢,Wes