1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Ubuntuでopenldapを2.4から2.5に上げたらldapsで接続できなくなった件について

Last updated at Posted at 2023-09-28

はじめに

これはopenldapサーバー側で遭遇した問題なのですが、Ubuntu 20.04 (focal)ベースのOpenldap v2.4コンテナを、Ubuntu 22.04 (jammy)のOpenLDAP v2.5コンテナに変更したところ問題が発生しました。

back_metaパッケージを利用して、バックエンドのldapサーバーに処理を移譲しているところで次のようなエラーメッセージに遭遇しました。

slapdのデバッグレベルを上げて表示させたエラーメッセージの抜粋
64c27001.25d3191a 0x7f750eed7640 TLS: peer cert untrusted or revoked (0x42)
64c27001.25d36ad4 0x7f750eed7640 TLS: can't connect: (unknown error code).

TLSと表示されているようにldaps(ポート636)アクセスをしていたところで表示されていて、コンテナを20.04から22.04ベースに上げると問題が発生します。

Dockerfile上で FROM ubuntu:focal に戻すだけで問題は収束するので、22.04に変更したことで問題が発生したことはすぐに確認することができました。

参考資料

結論

解決策はDockerfileでlibldap-commonパッケージを追加するだけです。

Dockerfileから抜粋
RUN apt-get update && DEBIAN_FRONTEND=noninteractive \
    apt-get install -y --no-install-recommends slapd ldap-utils ca-certificates libldap-common

似たようなことはDockerHubに登録されている公式のhttpd(Apache HTTPd)コンテナでもあって、Issues #209を送ったこともありました。

Ubuntu 20.04では明示的に記述する必要のなかったlibldap-commonパッケージですが、Ubuntu22.04ではこれを追加すれば問題は解決します。

libldap-commonパッケージの役割

/etc/ldap/ldap.conf を配置することが、このパッケージの役割です。

中にはCAファイルを参照するようになっているので、TLS証明書のCAを検証できなかったことが原因かもしれないので、確認しておきます。

/etc/ldap/ldap.confの該当箇所

# TLS certificates (needed for GnuTLS)
TLS_CACERT      /etc/ssl/certs/ca-certificates.crt

ここで指定している/etc/ssl/certs/ca-certificates.crtファイル自体は、ca-certificatesパッケージに含まれる/usr/sbin/update-ca-certificatesスクリプトによって生成されています。

TLS_CACERT行を削除してみる

libldap-commonパッケージをインストールした上で/etc/ldap/ldap.confのTLS_CACERTのパスを変更してから症状が再現するか確認してみます。

Dockerfileに追加した行
RUN sed -i -e 's!TLS_CACERT!#TLS_CACERT!' /etc/ldap/ldap.conf

この変更を行うと、libldap-commonパッケージを導入してもサーバーに接続できない問題が再現します。

/etc/ldap/ldap.confからCA局の情報を取得できないことが原因だと分かりました。

さいごに

Ubuntu 22.04とLDAP関連の操作は割と一般的だと思うのですが、これまで他のパッケージとの依存関係があるとして自動的に導入されていたlibldap-commonパッケージが独立したパッケージになっていることは他のパッケージでも問題になりそうです。

依存関係から推奨パッケージになってしまうことは、最近のTLSがデフォルトになってきた最近の動きと逆行するようにも感じられるので少し心配です。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?