openSSL/openLDAP tls 错误

openSSL/openLDAP tls 错误

我有两台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.keyserver.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

  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
    
  2. 检查您的日志。默认情况下,CentOS 不会记录slapdslapd默认为 facilty LOCAL4,严重性为DEBUG。您可以编辑/etc/sysconfig/slapd或修改 syslog 配置。

    # cat /etc/rsyslog.d/slapd.conf 
    local4.*    /var/log/slapd.log
    

    不要忘记修改的cn=configolcLogLevel可能
    olcLogLevel: Config是最相关的。man slapd-config有更多细节。

相关内容