【OpenDJ】構築_02_LDAPSの有効化 

OpenDJ

はじめに

以下の構築記録の続きです。

情報が少ない中で作業をしましたが、LDAPSを有効化したという記事がなかなか見つからず、試行錯誤で実現できました。「OpenDJをLDAPSでも通信させてぇ…」という方のお力になれればと思います。

証明書問題

「検証なので証明書は自己証明で」という話はよくあります。が、ldapsearchが成功せず、ちょっとハマりました。OSにその自己証明書を信頼させればいける!みたいな情報があったけど、うまくいかず…。結果、全然違うところで時間を消費しました。(ブラウザだと手動で無視して進めるんですけどね)

Let’s Encryptで作成できるなら、それに越したことはないです。自身で管理できるドメインを持っている場合、使うことをお勧めします。Linuxで何度も自己証明書を信頼するコマンドを叩いても、ldapsearchは失敗したので、LDAPサーバ構築と関係のないところではまるよりは、信頼されている証明書を入れた方が早かったです。

※Let’s Encryptで証明書を作る方法は、記事にできたらしようと思ってます。

構築

証明書の格納・準備

ということで、以下は別のサーバーで証明書を作成した後、OpenDJの/tmp配下にファイルを置いたところからスタートです。

使うのは下記の秘密鍵(privkey.pem)と証明書(fullchain.pem)です。別のサーバで発行したものを/tmp/に格納し、/opt/opendj/にコピーしています。

/opt/opendj内を確認します。

以下のコマンドでPKCS#12形式の証明書に変換します。

次に「keystore」というファイルを作成します。

実行ログは下記の通り。changeitというのは非推奨ですが、検証なのでそのあたりはご愛嬌ということで。

中身の確認

確認したいのは「Alias name: opendj」の部分。「ssl-cert-nickname」という値に合わせるために、後で使います。

実行結果は下記の通り。

LDAPS化の準備

JKS有効化

LDAPS化する前に下準備みたいなものが必要です。下記のコマンドを実行します。パスワードなどは構築時に指定した値に適宜変更します。

実行結果を載せます。実行が成功すれば、まず証明書を信頼するか聞かれるので、2を選択しておきます。

下記の通り、現在の設定と何をするか聞かれます。
2)でconfig/keystoreが指定されてます。pinが未設定で、keystore.pinは作成していないので、作成します。
3) key-store-pin を変更したいので、3を選択してEnterを押します。

前段で説明が入りますが、変更したいので2を選択します。

changeitを設定します。

編集を終了します。f を選択します。

「さて、次はLDAPSを有効化するか!」と思う、後述する手順でLDAPS有効化をしようとしたところ、下記のログが出力されました。

trust-manager-providerの設定が必要みたいです。
OpenDJ初の通信で必要になるものなので、今回は適当にkeystoreをコピーして「truststore」を作成して使いまわしてます。

OpenDJの trust-manager-provider の役割とは?

ChatGPTに聞いてみました。答えは以下。
「OpenDJの trust-manager-provider は、TLS/SSL証明書の検証(信頼性の管理) を担当する設定です。
これは、OpenDJが 外部のLDAPサーバーやクライアントとのSSL/TLS通信 を行う際に、相手の証明書を検証し、信頼できるかどうかを判断 する機能を持ちます。」
だそうです。

trust-manager-provider有効化

下記コマンドで実行します。

以下は実行ログです。先ほどと同じ流れなので、細かい説明は割愛。

LDAPS有効化

少し長くなりましたが、やっとLDAPSの有効化を実施。

実行結果は下記。これまでと流れは一緒です。10)を変更します。

「10) ssl-cert-nickname server-cert」は、keystoreで指定したAliasに合わせます。今回は「opendj」に設定します。ログは下記のとおりですが、説明の指示通りに進めれば問題なく進められます。

10)がopendjになっています。編集を完了します。

起動確認

サービスを再起動します。

netstatの結果の通り、1389でLISTENできています。

LDAPS通信確認

ldapsearchでLDAPSを指定してみます。

実行結果は下記の通り。

無事にできますね。構築は以上です。誰かの助けになれば幸いです。