O Dovecot não consegue se conectar ao MariaDB quando require_secure_transport está ativado

O Dovecot não consegue se conectar ao MariaDB quando require_secure_transport está ativado

Tenho um servidor Dovecot que usa MariaDB para caixas de correio virtuais. O servidor MariaDB está em outra máquina na mesma LAN.

Recentemente habilitamos o TLS na máquina MariaDB.

O Dovecot funciona bem quando require_secure_transportestá desligado, mas não consegue se conectar quando ligamos require_secure_transportno arquivo de configuração MariaDB.

O erro é:

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)

Parece um erro de autenticação, mas a conexão com o mesmo usuário e senha funciona bem quando require_secure_transportestá desativada, então o MariaDB está recusando a conexão porque o Dovecot não está usando TLS.

A string de conexão /etc/dovecot/dovecot-sql.conf.extse parece com:

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

O arquivo de configuração diz:

ssl_ca, ssl_ca_path - Defina um ou ambos para ativar SSL

Posso obter detalhes mais detalhados do erro? Por exemplo, se for uma incompatibilidade de versão do TLS, posso mostrar isso em algum lugar?

Existe uma configuração no Dovecot que preciso alterar?

ATUALIZAÇÃO: Adicionar ssl_verify_server_cert=noà string de conexão /etc/dovecot/dovecot-sql.conf.extpermite que a conexão funcione.

Portanto, parece ser um erro de verificação de certificado. Mas sem um registro mais detalhado, não tenho certeza do que não gosta no certificado.

O certificado é assinado pela CA na string de conexão. Seria bom saber qual nome comum ele está verificando e também se o Dovecot usará algum dos valores SAN para o certificado.

Responder1

Consegui que isso funcionasse corretamente configurando um servidor DNS na rede local com registros para os nomes de host do servidor imap e MariaDB e, em seguida, configurando resolv.confem ambas as máquinas para usá-lo.

O Dovecot agora se conecta sem problemas com require_secure_transportset no MariaDB e ssl_verify_server_cert=yesset na string de conexão do Dovecot.

Sem uma mensagem de erro mais detalhada para depuração, meu melhor palpite é que a implementação do TLS ignora os mapeamentos /etc/hostse requer o uso de um servidor DNS real.

informação relacionada