我有两台openLDAP
服务器,每台服务器都使用一个脚本并排设置,该脚本负责完成所有繁重的工作,两台服务器相互复制配置/用户,很长一段时间以来,我都认为一切正常。刚刚发现其中一台服务器实际上没有协商TLS
,因此无法对其进行身份验证。
这两个系统都是RHEL 6.7
,自创建以来,它们都以完全相同的方式在同一时间进行了更新。每个服务器都应该 100% 相同....
使用自签名证书
如果我(在破损的那个上):ldapsearch -ZZd 1 -D "cn=Manager,dc=example,dc=org" -w secret-b ""
TLS: loaded CA certificate file /etc/openldap/certs/ca-bundle.crt.
TLS: error: tlsm_PR_Recv returned 0 - error 22:Invalid argument
TLS: error: connect - force handshake failure: errno 22 - moznss error -5938
TLS: can't connect: TLS error -5938:Encountered end of file.
ldap_err2string
ldap_start_tls: Connect error (-11)
additional info: TLS error -5938:Encountered end of file
这让我很担心,因为我不认为我应该使用 Moznss,因为我在最初的测试中遇到了数据库问题,所以我很难链接到ca-bundle.crt
,以及server.key
和server.crt
,而这在我的其他服务器上同样运行良好。
另一方面,如果我:openssl s_client -connect server1:636 -cert server.crt -key server.key
CONNECTED(00000003)
140398252824392:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:s23_lib.c:184:
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 247 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
在我的另一台服务器上,这再次产生了良好的结果,验证了密钥。
这两个错误,至少根据一些搜索,暗示它与数据库有关moznss
,但我无法弄清楚a)为什么一个是问题而另一个不是,以及b)如何解决问题或绕过问题。
如果有人有进一步的故障排除想法或潜在的解决方案,我将不胜感激。
答案1
验证 olcTLS*File 指令是否
cn=config
指向真实文件。olcTLSCACertificateFile: /etc/ssl/certs/ca-bundle.crt olcTLSCertificateFile: /etc/pki/tls/certs/server.example.com.crt olcTLSCertificateKeyFile: /etc/pki/tls/private/server.example.com.key
检查您的日志。默认情况下,CentOS 不会记录
slapd
。slapd
默认为 faciltyLOCAL4
,严重性为DEBUG
。您可以编辑/etc/sysconfig/slapd
或修改 syslog 配置。# cat /etc/rsyslog.d/slapd.conf local4.* /var/log/slapd.log
不要忘记修改的
cn=config
。olcLogLevel
可能
olcLogLevel: Config
是最相关的。man slapd-config
有更多细节。