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:
- Auf den AD Controllern bzw. in der CA das Template anpassen, so dass das Subject mit dem FQDN gesetzt wird.
- Das Python-Modul dazu bringen Zertifikate nach RFC 3280 korrekt zu validieren.
- 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