我正在尝试使用 postfix 作为 gmail 中继
smtp 参数
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_use_tls=yes
smtp_tls_CAfile = /etc/ssl/ca-certificates.crt
smtp_tls_key_file=/etc/letsencrypt/live/MYDOMAIN.com/privkey.pem
smtp_tls_cert_file=/etc/letsencrypt/live/MYDOMAIN.com/cert.pem
smtp_tls_security_level=encrypt</id_string></id_string>
邮件显示已正确发送,但实际上没有邮件送达,邮件日志中的问题似乎是由 TSL 错误引起的
cannot load Certification Authority data, CAfile="/etc/ssl/ca-certificates.crt": disabling TLS support
warning: TLS library problem: error:02001002:system library:fopen:No such file or directory:../crypto/bio/bss_file.c:69:fopen('/etc/ssl/ca-certificates.crt','r'):
warning: TLS library problem: error:2006D080:BIO routines:BIO_new_file:no such file:../crypto/bio/bss_file.c:76:
warning: TLS library problem: error:0B084002:x509 certificate routines:X509_load_cert_crl_file:system lib:../crypto/x509/by_file.c:199:
connect to smtp.gmail.com:25: Network is unreachable
该文件ca-certificates.crt
存在于路径中/etc/ssl/
,并且已存在于 Debian 发行版中
另一件奇怪的事情是,如果main.cf
我尝试改变行
smtp_tls_CAfile = /etc/ssl/ca-certificates.crt
使用其他证书时,错误
cannot load Certification Authority data, CAfile="/etc/ssl/ca-certificates.crt": disabling TLS support
保持不变,而不是指向配置的证书名称,尽管使用了postfix reload
,并systemctl restart postfix.service
确保更新配置
我该如何修复这个错误?
答案1
在我的 Debian 机器(9、10 和 11)上,路径ca-certificates.crt
是:
/etc/ssl/certs/ca-certificates.crt
这个应该是默认的,我没有改变。
在我的 postfix 安装中我甚至没有设置该smtp_tls_CAfile
参数。如果您通过 Debian 包管理安装了 postfix 和 ca-certificates 包,它应该默认为正确的文件。
答案2
尝试> chmod 644 ca-certificates.crt 或验证证书包的正确布局