Dovecot no puede conectarse a MariaDB cuando require_secure_transport está activado

Dovecot no puede conectarse a MariaDB cuando require_secure_transport está activado

Tengo un servidor Dovecot que usa MariaDB para buzones virtuales. El servidor MariaDB está en otra máquina en la misma LAN.

Recientemente habilitamos TLS en la máquina MariaDB.

Dovecot funciona bien cuando require_secure_transportestá apagado, pero no se conecta cuando lo activamos require_secure_transporten el archivo de configuración de MariaDB.

El error es:

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)

Esto parece un error de autenticación, pero conectarse con este mismo usuario y contraseña funciona bien cuando require_secure_transportestá desactivado, por lo que MariaDB rechaza la conexión porque Dovecot no usa TLS.

La cadena de conexión /etc/dovecot/dovecot-sql.conf.extse ve así:

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

El archivo de configuración dice:

ssl_ca, ssl_ca_path: configura uno o ambos para habilitar SSL

¿Puedo obtener detalles más detallados del error? Por ejemplo, si la versión de TLS no coincide, ¿puedo hacer que se muestre en alguna parte?

¿Hay alguna configuración en Dovecot que deba cambiar?

ACTUALIZACIÓN: Agregar ssl_verify_server_cert=noa la cadena de conexión /etc/dovecot/dovecot-sql.conf.extpermite que la conexión funcione.

Entonces parece ser un error de verificación del certificado. Pero sin un registro más detallado, no estoy seguro de qué es lo que no le gusta del certificado.

El certificado está firmado por la CA en la cadena de conexión. Sería bueno saber qué nombre común está comprobando y también si Dovecot utilizará alguno de los valores SAN para el certificado.

Respuesta1

Logré que esto funcionara correctamente configurando un servidor DNS en la red local con registros para los nombres de host del servidor imap y MariaDB, y luego configurándolo resolv.confen ambas máquinas para usarlo.

Dovecot ahora se conecta sin problemas con require_secure_transportel conjunto en MariaDB y ssl_verify_server_cert=yesel conjunto en la cadena de conexión de Dovecot.

Sin un mensaje de error más detallado para la depuración, mi mejor suposición es que la implementación de TLS ignora las asignaciones en /etc/hostsy requiere el uso de un servidor DNS real.

información relacionada