Hallo,
ich habe hier einen Dovecot 2.2.9, der hat seine userdb und passdb gegen LDAP.
LDAP möchte von mir - je nach dem, was ich wissen möchte - gerne ein X.509-Client-Zertifikat sehen (olcTLSVerifyClient: demand). Mit ldapsearch auf der Kommandozeile geht alles. Das sendet das Zertifikat mit (selbe Files in ~/.ldaprc eingetragen, wie hier weiter unten in der Konfigurationsdatei des Dovecot zu sehen ist.)
Dafür gibt es in der entsprechenden Konfigurationsdatei bei Dovecot auch nicht weiter dokumentierte Parameter.
dovecot-ldap.conf.ext --------------------- uris = ldaps://<host>/ # tls = yes tls_cert_file = /etc/ssl/certs/<key> tls_key_file = /etc/ssl/private/<key>
Aber diese zwei tls_*_file Options interessieren Dovecot nicht. Wie auch weitere tls_* Options. Das führt dazu, dass der Server die Verbindung beendet, weil er ein Zertifikat anfordert und nur eine leere Antwort bekommt. (Kann man mit Wireshark sehr schön sehen.)
Wenn man statt ldaps ldap+tls macht:
uris = ldap://<host>/ tls = yes tls_cert_file = /etc/ssl/certs/<key> tls_key_file = /etc/ssl/private/<key>
bricht die Verbindung sehr zeitig mit einem TLS-Fehler ab, diesmal schon eher, nachdem der Client Client STARTTLS gewünscht hat, der Server dem stattgibt und dann eigentlich ein SSLvX ClientHello kommen müsste.
Ach so… Dovecot ist in der Gruppe ssl-cert mit drin und /etc/ssl/private ist für root:ssl-cert x- und lesbar. Aber eigentlich behauptet die Doku (darf mein ein Wiki Doku nennen?), dass die Konfigurationsfiles mit Root-Rechten gelesen werden.
Dovecot scheint gegen OpenSSL gelingt zu sein (libssl taucht bei ldd auf), aber die Debugmeldungen, die man bekommen kann, wenn man in der oben erwähnten Datei debug_level =-1 einträgt, deuten eher auf GnuTLS.
Any ideas? Bitte nicht den Kopf zerbrechen. Ich habe die Antwort schon, muss nur erstmal los und schreibe sie nachher auf, damit ich oder wer anders das hoffentlich mal in den Archiven findet.
Best regards from Dresden/Germany Viele Grüße aus Dresden Heiko Schlittermann