
Estamos enfrentando um problema em um de nossos ambientes openldap, ao permitir consultas seguras via ldaps:// nosso ambiente de integração continua retornando o seguinte erro para o comando ldapsearch:
SSL3_READ_BYTES:sslv3 alert bad record mac
enquanto o mesmo comando apontando para nosso ambiente de produção se conecta corretamente e retorna entradas correspondentes. A mesma consulta no ambiente de integração pela porta 389 e ldap:// também funciona.
Ambos são executados nas seguintes versões:
- Servidor Red Hat Enterprise Linux versão 6.2 (Santiago)
- OpenLDAP: slapd 2.4.23
- OpenSSL 1.0.0-fips
Cada um possui seu próprio certificado, assinado pela mesma CA.
Em nosso ambiente de integração:
/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
E no mesmo arquivo, ambiente de produção:
olcTLSCACertificateFile: /etc/openldap/certs/root_CA.pem
olcTLSCertificateFile: /etc/openldap/certs/openldapPRO.pem
olcTLSCertificateKeyFile: /etc/openldap/certs/openldap.key
E podemos verificar esse problema fazendo o seguinte:
$ 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:
---
Alguma idéia sobre o que há de errado e como configurar nosso LDAPS:// seguro para OpenLDAP?
Obrigado!
Responder1
SSL3_READ_BYTES:sslv3 alerta registro inválido mac
Pelo que parece, é um bug do OpenSSL. VerBug Debian 212410eBug 338006 do Debian.
Aqui está um problema semelhante para 1.0.0 sendo discutido na lista de discussão OpenSSL:Erro OpenSSL SSL_Accept.
Houve um bug AES-NI que produziu uma mensagem semelhante, mas foi descoberto em 1.0.1c e corrigido em 1.0.1d (e afetou TLS 1.1 e TLS 12) (veja oREGISTRO DE ALTERAÇÕES).
Acho que as recomendações padrão provavelmente se aplicam: certifique-se de que você e o outro endpoint estejam usando o OpenSSL mais recente.