LDAPS can't connect / peer cert untrusted or revoked

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
speedxy
Beiträge: 11
Registriert: 28.05.2014 16:01:07

LDAPS can't connect / peer cert untrusted or revoked

Beitrag von speedxy » 23.09.2014 23:02:41

Hallo,

ich habe einen OpenLDAP-Server aufgesetzt, komplett konfiguriert und im Einsatz. Vor der Produktivschaltung wollte ich gern LDAPS implementieren. Auf dem Server läuft bereits ein SSL-Zertifikat, das vom Apache genutzt wird, welches ich hierfür verwenden wollte.

Die Konfiguration habe ich über cn=config (OLC) vorgenommen:
olcTLSCACertificateFile => pem-Datei
olcTLSCertificateFile => crt-Datei
olcTLSCertificateKeyFile => key-Datei

Notwendige Änderungen in /etc/default/slapd und der iptables-Konfiguration habe ich ebenfalls gemacht.

Es handelt sich um ein Debian Squeeze. Die Verbindung über Apache Directory Studio (per LDAPS) hat problemlos funktioniert, leider kann ich weder von anderen Debian-Systemen, noch vom System selbst per ldapsearch oder phpldapadmin verbinden. Über Port 389 funktioniert die Verbindung nach wie vor fehlerfrei.

Hier die Ausgabe von ldapsearch:

Code: Alles auswählen

ldap_url_parse_ext(ldaps://ldap.domain.de)
ldap_create
ldap_url_parse_ext(ldaps://ldap.domain.de:636/??base)
ldap_sasl_bind
ldap_send_initial_request
ldap_new_connection 1 1 0
ldap_int_open_connection
ldap_connect_to_host: TCP ldap.domain.de:636
ldap_new_socket: 3
ldap_prepare_socket: 3
ldap_connect_to_host: Trying XX.XX.XX.XX:636
ldap_pvt_connect: fd: 3 tm: -1 async: 0
TLS: peer cert untrusted or revoked (0x42)
TLS: can't connect: (unknown error code).
ldap_err2string
ldap_sasl_bind(SIMPLE): Can't contact LDAP server (-1)
Anscheinend ist das Zertifikat nicht vertrauenswürdig (Apache Directory Studio scheint nicht korrekt zu validieren). Ich habe den User openldap in die Gruppe ssl-cert aufgenommen, entsprechende Rechte gesetzt und auch mit einer temporären Shell des Users den Zugriff auf die Zertifikate geprüft. Das dürfte es also nicht sein. Kann es sein, dass das Zertifikat nicht kompatibel ist oder ich irgendwas Grundlegendes vergessen habe?

Danke schonmal!

Benutzeravatar
habakug
Moderator
Beiträge: 4314
Registriert: 23.10.2004 13:08:41
Lizenz eigener Beiträge: MIT Lizenz

Re: LDAPS can't connect / peer cert untrusted or revoked

Beitrag von habakug » 23.09.2014 23:28:40

Hallo!

Das Zertifikat kann importiert werden:

Code: Alles auswählen

$ cd /tmp
$ echo -n | openssl s_client -connect ldap.ser.ver:636 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ldapserver.pem
# mv /tmp/ldapserver.pem /usr/share/ca-certificates/ldapserver.crt
# update-ca-certificates
Gruss, habakug
( # = root | $ = user | !! = mod ) (Vor der PN) (Debianforum-Wiki) (NoPaste)

speedxy
Beiträge: 11
Registriert: 28.05.2014 16:01:07

Re: LDAPS can't connect / peer cert untrusted or revoked

Beitrag von speedxy » 23.09.2014 23:36:36

Muss dies dann nicht aber bei allen Clients gemacht werden? Da ich ein gültiges Zertifikat habe, das vertrauenswürdig sein sollte, müsste dieses doch automatisch vom Client akzeptiert werden, oder? Der Zugriff auf den Server soll später von verschiedenen Systemen aus erfolgen, bei denen ich meist keinen SSH-Zugriff habe.

Benutzeravatar
habakug
Moderator
Beiträge: 4314
Registriert: 23.10.2004 13:08:41
Lizenz eigener Beiträge: MIT Lizenz

Re: LDAPS can't connect / peer cert untrusted or revoked

Beitrag von habakug » 24.09.2014 00:27:41

Hallo!

Dann musst du den Clients in der "ldap.conf" erlauben das Zertifikat zu ignorieren.

Code: Alles auswählen

TLS_REQCERT allow
Gruss, habakug
( # = root | $ = user | !! = mod ) (Vor der PN) (Debianforum-Wiki) (NoPaste)

speedxy
Beiträge: 11
Registriert: 28.05.2014 16:01:07

Re: LDAPS can't connect / peer cert untrusted or revoked

Beitrag von speedxy » 24.09.2014 00:44:27

Hallo habakug,
Erstmal danke für deine schnellen Antworten!
Über die Möglichkeit habe ich auch gelesen. Aber eigentlich möchte ich ja nicht, dass das Zertifikat ignoriert wird. Ich habe so langsam das Gefühl, dass ich da einen kleinen Denkfehler habe:
Ich war davon ausgegangen, wenn ich ein gültiges Zertifikat einsetze, würden mir die Umwege der selbstsignierten Zertifikate erspart bleiben. Das Zertifikat, das ich habe (Geotrust, Wildcard) wird ja bereits erfolgreich als Zertifikat für HTTPS (Apache2 auf dem Server) eingesetzt und ist von vertrauenswürdiger Stelle ausgestellt, wodurch - so dachte ich - alle Clients damit klarkommen sollten und eine verschlüsselte Verbindung ohne Importe, manuelles Zustimmen oder Ignores zustande kommen müsste.
Oder muss man so auch bei solchen Zertifikaten vorgehen?

Danke und Grüße! speedxy

Antworten