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개의 디렉터리(인증서 - [인증서 및 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만으로 구성하면 충분합니다. 그것이 오류의 원인인지는 모르겠지만 오류 중 하나를 삭제해 볼 수 있습니다.

관련 정보