LDAP via SSL "TLS: unable to get CN from peer certificate"

Hallo,
ich bin auf ein Problem gestoßen, als ich unsere AD Anbindung auf SSL umstellen wollte. Alle Keys inkl. Root-CA korrekt hinterlegt und keine Verbindung zum AD. M.E. liegt es nicht an der Zertifikatskette, sondern an den von den AD-Controllern verwendeten Zertifikaten bzw. dem Handling dieser Zertifikate in checkmk.

Im web.log finden sich folgende Fehlermeldungen:
[40] [cmk.web 17791] Exception (admins, userdb_job): Traceback (most recent call last):
File “/omd/sites/empty/lib/python/cmk/gui/userdb.py”, line 1380, in _execute_sync_action
connection.do_sync(add_to_changelog=add_to_changelog, only_username=False)
File “/omd/sites/empty/lib/python/cmk/gui/plugins/userdb/ldap_connector.py”, line 1159, in do_sync
ldap_users = self.get_users()
File “/omd/sites/empty/lib/python/cmk/gui/plugins/userdb/ldap_connector.py”, line 793, in get_users
self._config[‘user_scope’]):
File “/omd/sites/empty/lib/python/cmk/gui/plugins/userdb/ldap_connector.py”, line 646, in _ldap_search
_(‘Unable to successfully perform the LDAP search (%s)’) % last_exc)
MKLDAPException: Unable to successfully perform the LDAP search (LDAP connection failed:
ldaps://a.b.c:636: (unknown error code)
ldaps://x.x.x.11:636: TLS: unable to get CN from peer certificate
ldaps://x.x.x.12:636: (unknown error code))

Seit Windows 2003 folgen die Zertifikate im AD der RFC 3280. D.h. die Zertifikate haben ein leeres Subject und verwenden stattdessen das SAN Feld. Das Python-Modul vom checkmk, welches die LDAP Anbindung macht, wertet aber nur das Subject zur Validierung des Zertifikats aus. Ist dieses leer, schlägt diese Validierung fehl.
Aus diesem Dilemma gibt es m.E. mehrere Auswege:

  1. Auf den AD Controllern bzw. in der CA das Template anpassen, so dass das Subject mit dem FQDN gesetzt wird.
  2. Das Python-Modul dazu bringen Zertifikate nach RFC 3280 korrekt zu validieren.
  3. Das Python-Modul dahingehend modifizieren, dass es keine Validierung vornimmt.

Letzteres ist mit einer Codezeile realisiert und vorerst meine Lösung. Sollte es einen besseren Weg geben, bin ich für Hinweise dankbar.

checkmk Raw 1.6.0p11
Ubuntu 18.04.4 LTS

So nun antworte ich hier mal.
Gerade nochmal geschaut - mein einer DC hat auch keinen CN.
Auf dem CMK Server ist nur das Root Zertifikat der Domäne hinterlegt sonst nix.
Abfrage der User per LDAPS klappt ohne Probleme.

Wo hast du die Information her? Kann das nicht in der Form sehen.

1 Like

Bingo. Das hat mich auf die Spur gebracht. Der Hinweis, dass du nur ein Zertifikat hinterlegt hast, hat mich veranlasst hier die Zertifikate noch mal zu prüfen. In der Tat war eines kaputt (nur Datenmüll). Zertifikat durch eine korrekte Version ersetzt und läuft.

Danke

1 Like

Bitte vermerk andreas-doehler antwort dann als Lösung :slight_smile:
dann sieht jeder, dass das hier erledigt ist

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.