我一直在尝试获取正确的设置方法,以允许 postfix 连接到需要 ssl 的 mysql。到目前为止,我的以下配置不起作用:
user = mysqluser
password = XXX
hosts = secure-mysql-db.example.com
dbname = mail
query = SELECT 1 FROM users WHERE email='%s'
tls_CAfile = /path/to/mysql-ca.crt
使用此配置时,出现以下错误
postfix/cleanup[1317842]: 警告:连接到 mysql 服务器 secure-mysql-db.example.com:SSL 连接错误:没有此文件或目录
我确实确认该文件可以访问。通过命令行使用相同凭据进行连接可以按预期工作。
提前感谢任何帮助!
更新
审查后强制 Postfix 使用 TLS 进行 MySQL 连接?,我添加了以下内容:
user = mysqluser
password = XXX
hosts = secure-mysql-db.example.com
dbname = mail
query = SELECT 1 FROM users WHERE email='%s'
tls_ciphers = TLSv1.3
tls_CAfile = /path/to/mysql-ca.crt
现在我收到以下错误:
SSL 连接错误:无密码匹配
我确实已确认该连接确实可以与数据库正常工作:
mysql -h secure-mysql-db.example.com -p -u postfix mail
MySQL [mail]> \s
--------------
mysql Ver 15.1 Distrib 10.5.15-MariaDB, for debian-linux-gnu (x86_64) using EditLine wrapper
Connection id: 487933
Current database: mail
Current user: [email protected]
SSL: Cipher in use is ECDHE-RSA-AES256-GCM-SHA384
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server: MySQL
Server version: 8.0.26 MySQL Community Server - GPL
Protocol version: 10
Connection: secure-mysql-db.example.com via TCP/IP
Server characterset: utf8mb4
Db characterset: utf8mb4
Client characterset: utf8mb3
Conn. characterset: utf8mb3
TCP port: 3306
Uptime: 17 days 7 hours 25 min 45 sec
我在 Debian 11.5 上运行 Postfix 3.5.13