我们在其中一个 openldap 环境中遇到一个问题,当通过 ldaps:// 启用安全查询时,我们的集成环境不断向 ldapsearch 命令返回以下错误:
SSL3_READ_BYTES:sslv3 alert bad record mac
而指向我们的生产环境的相同命令可以正确连接并返回匹配的条目。通过端口 389 和 ldap:// 对集成环境进行相同查询也可以正常工作。
两者均在以下版本下运行:
- Red Hat Enterprise Linux Server 版本 6.2(圣地亚哥)
- OpenLDAP:slapd 2.4.23
- OpenSSL 1.0.0-fips
每个证书都有自己的证书,由同一个 CA 签名。
在我们的集成环境中:
/etc/openldap/slapd.d/cn\=config.ldif:
olcTLSCACertificateFile: /etc/openldap/certs/root_CA.pem
olcTLSCertificateFile: /etc/openldap/certs/openldapint.pem
olcTLSCertificateKeyFile: /etc/openldap/certs/openldapint.key
在同一个文件中,生产环境:
olcTLSCACertificateFile: /etc/openldap/certs/root_CA.pem
olcTLSCertificateFile: /etc/openldap/certs/openldapPRO.pem
olcTLSCertificateKeyFile: /etc/openldap/certs/openldap.key
我们可以按照下列步骤检查这个问题:
$ openssl s_client -connect localhost:636 -showcerts -CApath /etc/openldap/cert/root_CA.pem
CONNECTED(00000003)
depth=1 L = (...), OU = (...), CN = (...)
verify error:num=19:self signed certificate in certificate chain
verify return:0
139866277001032:error:140943FC:SSL routines:SSL3_READ_BYTES:sslv3 alert bad record mac:s3_pkt.c:1193:SSL alert number 20
139866277001032:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:s23_lib.c:184:
---
对于哪里出了问题,以及如何为 OpenLDAP 配置安全 LDAPS://,您有什么想法吗?
谢谢!
答案1
SSL3_READ_BYTES:sslv3 警报坏记录 mac
听起来,这是 OpenSSL 的一个错误。请参阅Debian 错误 212410和Debian 错误 338006。
以下是 OpenSSL 邮件列表中讨论的 1.0.0 版的类似问题:OpenSSL SSL_Accept 错误。
有一个 AES-NI 错误产生了类似的消息,但它在 1.0.1c 中被发现并在 1.0.1d 中修复(它影响了 TLS 1.1 和 TLS 12)(请参阅变更日志)。
我认为标准建议可能适用:确保您和另一端点正在使用最新的 OpenSSL。