Apache 版本 2.4.29,Windows Server 2012 R2
刚刚开始使用 Apache,对它还很陌生。我使用 Apache 作为应用程序到应用程序 SOAP 通信的正向和反向代理。我已使用 SSL 相互身份验证设置了连接。目前尝试在反向代理上设置一种方法来根据 LDAP 目录检查客户端证书 cn,但我无法让它正常工作。
我制作的 C# 客户端应用程序可以连接到代理后面的服务,但是一旦我在 httpd-ssl 文件中添加 LDAP 配置更改,客户端应用程序就会返回错误:“HTTP 请求未获得客户端身份验证方案‘匿名’的授权。从服务器收到的身份验证标头是‘Basic realm="ApacheProxy"’。”
以下是我正在使用的配置。也许我遗漏了什么或做错了什么?我不太确定这是否能实现我的目标。
<Location / >
AuthName "ApacheProxy"
AuthType Basic
AuthBasicProvider ldap
AuthLDAPURL "my_ldap_url"
AuthLDAPBindDN "cn=mycn,ou=applications,o=myo,c=myc"
AuthLDAPBindPassword mypassword
Require ldap-dn "cn=mycn,ou=applications,o=myo,c=myc"
LDAPReferrals Off
AuthLDAPCompareDNOnServer on
</Location>
当我尝试从浏览器导航到反向代理时,它会提示登录。当我使用我的 LDAP 凭据时,什么都没有发生,但通过 Wireshark,我可以看到我与 LDAP 的连接成功了。我怀疑我的客户端应用程序因登录提示而出现问题。我想咨询社区,看看是否有解决方案可以在不提示登录的情况下对客户端证书 cn 进行 LDAP 检查。
总结一下并换一种说法,当应用程序到达 Apache 反向代理时,有没有办法自动登录到 LDAP 来检查客户端证书的 cn?