Dovecot kann keine Verbindung zu MariaDB herstellen, wenn require_secure_transport aktiviert ist

Dovecot kann keine Verbindung zu MariaDB herstellen, wenn require_secure_transport aktiviert ist

Ich habe einen Dovecot-Server, der MariaDB für virtuelle Postfächer verwendet. Der MariaDB-Server befindet sich auf einem anderen Computer im selben LAN.

Wir haben vor Kurzem TLS auf der MariaDB-Maschine aktiviert.

Dovecot funktioniert einwandfrei, wenn require_secure_transportes ausgeschaltet ist, kann aber keine Verbindung herstellen, wenn wir es require_secure_transportin der MariaDB-Konfigurationsdatei einschalten.

Der Fehler ist:

Error: mysql(xxx.xxx.xxx.xxx): Connect failed to database (db_name): Access denied for user 'db_user'@'xxx.xxx.xxx.xxx' (using password: YES)

Dies sieht nach einem Authentifizierungsfehler aus, aber die Verbindung mit demselben Benutzer und Kennwort funktioniert einwandfrei, wenn require_secure_transportes deaktiviert ist. Daher lehnt MariaDB die Verbindung ab, weil Dovecot TLS nicht verwendet.

Die Verbindungszeichenfolge /etc/dovecot/dovecot-sql.conf.extsieht folgendermaßen aus:

connect = host=db0.mydomain.com dbname=my_db user=the_user password=secret ssl_ca=/etc/ssl/authority/authority.crt

In der Konfigurationsdatei steht:

ssl_ca, ssl_ca_path - Legen Sie einen oder beide fest, um SSL zu aktivieren.

Kann ich ausführlichere Details zum Fehler erhalten? Wenn es sich beispielsweise um eine Nichtübereinstimmung der TLS-Version handelt, kann ich das irgendwo anzeigen lassen?

Gibt es eine Einstellung in Dovecot, die ich ändern muss?

UPDATE: Durch ssl_verify_server_cert=nodas Hinzufügen zur Verbindungszeichenfolge /etc/dovecot/dovecot-sql.conf.extkann die Verbindung hergestellt werden.

Es scheint sich also um einen Fehler bei der Zertifikatsüberprüfung zu handeln. Aber ohne ausführlichere Protokollierung bin ich mir nicht sicher, was an dem Zertifikat nicht gefällt.

Das Zertifikat wird von der Zertifizierungsstelle in der Verbindungszeichenfolge signiert. Es wäre gut zu wissen, welcher allgemeine Name überprüft wird und ob Dovecot einen der SAN-Werte für das Zertifikat verwendet.

Antwort1

Ich habe dies zum Laufen gebracht, indem ich im lokalen Netzwerk einen DNS-Server mit Datensätzen für die Hostnamen der IMAP- und MariaDB-Server eingerichtet und ihn dann resolv.confauf beiden Maschinen für die Verwendung eingestellt habe.

Dovecot stellt jetzt problemlos eine Verbindung mit require_secure_transport„Set“ in MariaDB und ssl_verify_server_cert=yes„Set“ in der Verbindungszeichenfolge von Dovecot her.

Da ich keine ausführlichere Fehlermeldung zum Debuggen habe, gehe ich davon aus, dass die TLS-Implementierung die Zuordnungen in ignoriert /etc/hostsund die Verwendung eines tatsächlichen DNS-Servers erfordert.

verwandte Informationen