OpenLDAP における TLS ネゴシエーションの問題

OpenLDAP における TLS ネゴシエーションの問題

私は OpenLDAP マスター/スレーブ アーキテクチャを使用しています。ある日、LDAP スレーブで slapd サービスを再起動したところ、ログに TLS ネゴシエーションの問題が見つかりました。サービスを再起動する前は、問題なく動作していました

その後、問題をデバッグしようとしたところ、TLS ネゴシエーションの問題を引き起こすいくつかの一般的な問題が見つかりました。

  1. SSL証明書の有効期限が切れている可能性があります- 私の場合はそうではありません。証明書が有効であることを確認しました
  2. 証明書のCN名がサーバー名と一致しません- 私の場合、証明書 CN=*.example.com で、サーバー名は ldap.example.com と ldap-slave.example.com です。
  3. 証明書ファイルの権限の問題- 2 つのディレクトリ (certs - [証明書と CA 証明書とキーを含む]、cacert - [cacert のみを含む]) があり、両方のディレクトリに読み取りおよび書き込み権限があり、LDAP ユーザーが所有しています。

以下は slapd で使用される設定です。

dn: cn=config
objectClass: olcGlobal
cn: config
olcArgsFile: /var/run/openldap/slapd.args
olcDisallows: bind_anon
olcLogLevel:: YW55IA==
olcPidFile: /var/run/openldap/slapd.pid
olcRequires: authc
olcTLSCACertificateFile: /etc/openldap/certs/example.ca.crt
olcTLSCACertificatePath: /etc/openldap/certs
olcTLSCertificateFile: /etc/openldap/certs/example.crt
olcTLSCertificateKeyFile: /etc/openldap/certs/example.key

dn: cn=module{0},cn=config
objectClass: olcModuleList
cn: module{0}
olcModulePath: /usr/lib64/openldap
olcModuleLoad: {0}syncprov.la

dn: cn=module{1},cn=config
objectClass: olcModuleList
cn: module{1}
olcModulePath: /usr/lib64/openldap
olcModuleLoad: {0}auditlog.la

これが私のldap.confファイルです

#
# LDAP Defaults
#

# See ldap.conf(5) for details
# This file should be world readable but not world writable.

#BASE   dc=example,dc=com
#URI    ldap://ldap.example.com ldap://ldap-master.example.com:666

#SIZELIMIT  12
#TIMELIMIT  15
#DEREF      never

#TLS_CACERT /etc/openldap/cacerts/example.ca.crt
#TLS_REQCERT demand
TLS_CACERTDIR /etc/openldap/cacerts
#TLS_CACERT /etc/openldap/certs/example.ca.crt
TLS_REQCERT allow
# Turning this off breaks GSSAPI used with krb5 when rdns = false
SASL_NOCANON    on
URI ldaps://ldap.example.com/ ldaps://ldap-slave.example.com/
BASE dc=example,dc=com

問題のデバッグにご協力ください。

答え1

エラーのログを教えていただけますか?

また、olcCACertificatePath と olcCACertificateFile の両方は必要ありません。私の場合は、olcCACertficatePath のみの構成で十分です。これがエラーの原因かどうかはわかりませんが、どちらか一方を削除してみてください。

関連情報