![证书替换后,Centos 上的 Apache 服务器无法进行 ldaps 身份验证](https://linux22.com/image/803319/%E8%AF%81%E4%B9%A6%E6%9B%BF%E6%8D%A2%E5%90%8E%EF%BC%8CCentos%20%E4%B8%8A%E7%9A%84%20Apache%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%97%A0%E6%B3%95%E8%BF%9B%E8%A1%8C%20ldaps%20%E8%BA%AB%E4%BB%BD%E9%AA%8C%E8%AF%81.png)
我运行了许多服务器,有些运行 Ubuntu 12.04,有些运行 Centos 6.3。最近,我的 ldap 服务器上的自签名 SSL 证书已过期,因此我生成了一个新证书,并将其分发给所有需要它连接到 ldap 服务器以运行身份验证的 Apache2 服务器。在 Ubuntu 上运行的所有 Apache 2 服务器都运行良好,放入新证书后一切正常。但是在 Centos 上,使用新证书仍然一切失败。如果我切换到使用未加密的 ldap,它们会再次正常工作。
我对此进行了大量的研究,发现以下内容准确描述了我的情况:
https://issues.apache.org/bugzilla/show_bug.cgi?id=50630
遗憾的是,我尝试将“LDAPVerifyServerCert Off”添加到我的配置中,但这没有帮助。如果有任何其他建议,我将不胜感激。
编辑1: 我做了进一步的挖掘,发现很多关于最近的 Centos ldap 包是针对 NSS 而不是 OpenSSL 构建的讨论,以及大小写问题。一个例子:http://www.openldap.org/lists/openldap-technical/201303/msg00162.html
那么,元问题来了,有人用这种方法解决过 SSL 相关问题吗?成功了吗?
答案1
我通过安装此处的 berkelydb 和 openldap 包解决了这个问题:
http://ltb-project.org/wiki/download
不同之处在于,Redhat 已开始将内容链接到 nss 而不是 openssl 以提供 ssl 支持。在这种情况下,这会破坏所有内容。安装这些软件包(链接到 openssl)可修复此问题。只需获取软件包并运行:
yum 安装 berkeleydb-ltb* openldap-ltb*
重新启动 apache,哇,问题解决了。