Ubuntu 22.04 LDAPサーバー構築 389 Directory Server #2 TLS有効化

目次に戻る

概要

LDAPサーバーでTLSを有効にします。

LDAP関連マニュアル

LDAPサーバー構築 389 Directory Server #1 インスタンスの起動
LDAPサーバー構築 389 Directory Server #2 TLS有効化
LDAPサーバー構築 389 Directory Server #3 ベースエントリーの登録
LDAPサーバー構築 389 Directory Server #4 アクセス制御
LDAPサーバー構築 389 Directory Server #5 グループとユーザーの登録
LDAPクライアント
LinuxのLDAP認証 SSSD

設定

TLSの有効化

TLSはnsslapd-securityで制御されています。インスタンス作成時に自己署名証明書を作成しない場合の初期値はoffです。

myadmin@ubuntu:~$ ldapsearch -H ldap://ldap.si1230.com -D "cn=Directory Manager" -W -b cn=config | grep nsslapd-security
nsslapd-security: off

TLSを有効にします。

myadmin@ubuntu:~$ cat <<"EOF" | ldapmodify -H ldap://ldap.si1230.com -D "cn=Directory Manager" -W
dn: cn=config
replace: nsslapd-security
nsslapd-security: on
EOF
myadmin@ubuntu:~$ ldapsearch -H ldap://ldap.si1230.com -D "cn=Directory Manager" -W -b cn=config | grep nsslapd-security
nsslapd-security: on

ポイントはこの時点でインスタンスを再起動しないことです。証明書が未設定のためエラーになります。この場合、面倒なので試してませんがおそらくインスタンスの再作成が必要です。

pin.txt

pin.txtにはNSS Certificate DBのパスワードが記載されています。このパスワードは以降のcertutil, pk12utilコマンドで使用します。

myadmin@ubuntu:~$ sudo cat /etc/dirsrv/slapd-main/pin.txt

ルート証明書のインポート

自己署名証明書の作成方法はこちらを参照して下さい。

OSレベルで自己署名のルート証明書を信頼している場合はこの手順は不要ですが、個別に信頼する場合は下記の通りルート証明書をインポートします。

myadmin@ubuntu:~$ sudo certutil -A -d /etc/dirsrv/slapd-main -n CA-Cert -t c,, -i /etc/pki/mypki/ca.crt
myadmin@ubuntu:~$ sudo certutil -L -d /etc/dirsrv/slapd-main

サーバー証明書のインポート

サーバー証明書のインポートにはPKCS#12形式の証明書が必要となるため下記の通り作成します。ここでのパスワードはpk12utilでのインポート時に必要となります。~/work/ldapにLDAP用の証明書を配置していることとします。

myadmin@ubuntu:~$ cd ~/work/ldap
myadmin@ubuntu:~$ openssl pkcs12 -export -in ldap.si1230.com.crt -inkey ldap.si1230.com.key -out ldap.si1230.com.p12 -nodes -name Server-Cert

サーバー証明書をインポートします。

myadmin@ubuntu:~$ sudo pk12util -i ldap.si1230.com.p12 -d /etc/dirsrv/slapd-main
myadmin@ubuntu:~$ sudo certutil -L -d /etc/dirsrv/slapd-main

設定反映

389 Directory Serverは基本的にオンラインで設定変更が可能ですが、TLSの有効化にはインスタンスの再起動が必要です。

myadmin@ubuntu:~$ sudo systemctl restart dirsrv@main.service
myadmin@ubuntu:~$ systemctl status dirsrv@main.service

TLS有効化後の初回のログは暗号化に関するエラーがいくつか出ますが、2回目以降は解消されます。

正常性確認

LDAPSで接続を確認します。

LDAPS接続が失敗する原因は、①ルート証明書を信頼していない、②サーバー証明書のcommon-name(またはalt-name)と指定しているFQDNが一致していない、のどちらがほとんどです。

myadmin@ubuntu:~$ ldapsearch -H ldaps://ldap.si1230.com -D "cn=Directory Manager" -W -b cn=config

目次に戻る

Ubuntu 22.04 LDAPサーバー構築 389 Directory Server #2 TLS有効化

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る