Ich habe die OpenLDAP Master-Slave-Architektur. Eines Tages habe ich den slapd-Dienst im LDAP-Slave neu gestartet und dann das TLS-Aushandlungsproblem in den Protokollen gefunden.Vor dem Neustart des Dienstes funktionierte er ohne Probleme
Dann habe ich versucht, das Problem zu debuggen. Ich habe einige allgemeine Probleme gefunden, die TLS-Aushandlungsprobleme auslösen.
- Das SSL-Zertifikat ist möglicherweise abgelaufen- Bei mir ist das nicht der Fall, ich habe überprüft, dass das Zertifikat gültig ist
- Der CN-Name des Zertifikats stimmt nicht mit dem Servernamen überein.– In meinem Fall ist mein Zertifikat CN=*.example.com und meine Servernamen sind ldap.example.com und ldap-slave.example.com.
- Berechtigungsprobleme in den Zertifikatsdateien– Ich habe 2 Verzeichnisse (certs – [enthält Zertifikat & CA-Zertifikat & Schlüssel], cacert – [enthält nur cacert]), beide Verzeichnisse haben Lese- und Schreibberechtigung und sind Eigentum des LDAP-Benutzers.
Hier ist die vom slapd verwendete Konfiguration.
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
Hier ist meine ldap.conf-Datei
#
# 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
Helfen Sie mir also bitte, das Problem zu beheben.
Antwort1
Können wir die Protokolle mit dem Fehler haben, um Ihnen zu helfen?
Außerdem benötigen Sie nicht sowohl olcCACertificatePath als auch olcCACertificateFile, für mich reicht die Konfiguration mit nur olcCACertificatePath aus. Ich weiß nicht, ob dies die Ursache Ihres Fehlers ist, aber Sie können versuchen, eines davon zu löschen.