概要
前回 bitnami の openldap イメージで ldap サーバを構築してみました
今回は TLS 設定行ってみます
環境
- Ubuntu 18.04
- docker 20.10.7
- bitnami/openldap 2.6.3
事前準備
- ドメインの取得
- A レコードの登録
- A レコードの FQDN に対応した証明書の取得
は事前に済ませておいてください
ワイルドカード証明書があればそれでも OK です
今回証明書は certs 配下にデータを配置するディレクトリは data 配下とします
TLS + openldap の構築
コマンドは以下の通りです
docker run --name openldap -d \
-v $(pwd)/certs:/opt/bitnami/openldap/certs \
-v $(pwd)/data:/bitnami/openldap/ \
-e ALLOW_EMPTY_PASSWORD=yes \
-e LDAP_ENABLE_TLS=yes \
-e LDAP_TLS_CERT_FILE=/opt/bitnami/openldap/certs/server.crt \
-e LDAP_TLS_KEY_FILE=/opt/bitnami/openldap/certs/server.key \
-e LDAP_TLS_CA_FILE=/opt/bitnami/openldap/certs/ca.crt \
-p 1636:1636 \
bitnami/openldap:latest
ちょっと解説
data ディレクトリは
- mkdir data
- chmod -R 777 data
しておきます
777 は「mkdir: cannot create directory ‘/bitnami/openldap/data’: Permission denied」対策です
ldapsearch で指定するホスト名は登録した FQDN でアクセスすることになるので 1636 ポートは外部からアクセスできるようにしておきます
証明書と鍵、CAファイルは指定が必須になります
証明書に CA 証明書の情報も記載されている場合はこちらの記事を参考に分割してください
動作確認
-
ldapsearch -x -H ldaps://your.ldap-server.com:1636 -b dc=example,dc=org -D "cn=admin,dc=example,dc=org" -w adminpassword
TLS である ldaps プロトコルの指定と 1636 ポートを指定します
これで検索結果が返却されれば OK です
トラブルシューティング
「-d 1」というオプションを付与すればデバッグ表示できます
-
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)
TLS の場合サーバ証明書のホスト名とアクセスするホスト名が同一でなければなりません
例えば ldaps://localhost:1636 などとすると上記のエラーになります
-
tls_write: want=31 error=Bad file descriptor
これは正常に検索結果が返ってきているにも関わらずデバッグ表示すると最後に表示されているエラーでした
基本は無視で問題ないかなと思います
最後に
Openldap で TLS を設定する方法を紹介しました
今回は docker から構築しましたが slapd を使った場合でも同じようなオプションが slapd.conf にあるのでそれを編集すれば有効にできると思います
ちなみに slapd.conf の場所はコンテナ内にはなくすべて ldif ファイルで管理されています
-
docker exec openldap slapcat -F /opt/bitnami/openldap/etc/slapd.d
-
sudo cat data/slapd.d/cn\=config.ldif
0 件のコメント:
コメントを投稿