ldaps:// で TLS ネゴシエーションに失敗しました - sslv3 アラート 不正なレコード mac

ldaps:// で TLS ネゴシエーションに失敗しました - sslv3 アラート 不正なレコード mac

当社の openldap 環境の 1 つで問題が発生しています。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 を使用していることを確認してください。

関連情報