Overview
389 Directory Server で TLS (LDAPS) を有効化します。
前提条件
- こちらを参考に 389 Directory Server のインスタンス作成が完了していること。
TLS の有効化
TLS は nsslapd-security で制御されています。インスタンス作成時に自己署名証明書を作成しない場合の初期値は off です。
myadmin@ubuntu:~$ ldapsearch -H ldap://ldap.si1230.com -D "cn=Directory Manager" -w password -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 password
dn: cn=config
replace: nsslapd-security
nsslapd-security: on
EOF
myadmin@ubuntu:~$ ldapsearch -H ldap://ldap.si1230.com -D "cn=Directory Manager" -w password -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
ルート証明書のインポート
この手順は「update-ca-certificates 自己署名証明書の信頼」を実施している場合は不要です。参考までに個別に信頼する場合は下記の通りルート証明書をインポートします。
myadmin@ubuntu:~$ sudo certutil -A -d /etc/dirsrv/slapd-main -n CA-Cert -t c,, -i ca.crt
myadmin@ubuntu:~$ sudo certutil -L -d /etc/dirsrv/slapd-main
サーバー証明書のインポート
サーバー証明書のインポートには PKCS#12 形式の証明書が必要となります。ここでのパスワードは pk12util でのインポート時に使用します。
openssl pkcs12 -export -in /etc/my-ssl/certs/si1230.com.crt -inkey /etc/my-ssl/private/si1230.com.key -out /etc/my-ssl/certs/si1230.com.p12 -nodes -name Server-Cert
サーバー証明書をインポートします。
myadmin@ubuntu:~$ sudo pk12util -i /etc/my-ssl/certs/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 && 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 password -b cn=config
次のステップ
389 Directory Server LDAP サーバー構築 #3 ベースエントリーの登録