我有一台运行 Postfix 的 Ubuntu 14.04 服务器 - 它通过外部主机(Mandrill)发送邮件。
我在发送电子邮件时没有遇到任何问题 - 但是(在禁用 TLS 之前 - 这似乎没有造成任何问题) - 在发送的每封电子邮件上我都会收到错误 -
postfix/postfix-script[4557]: 警告:/var/spool/postfix/etc/ssl/certs/ca-certificates.crt 和 /etc/ssl/certs/ca-certificates.crt 不同
自从禁用 TLS 后,我发送电子邮件时不再收到警告(这并不奇怪) - 但是在启动服务时(以及在计划的 cron 服务检查中)会看到警告。
该服务器托管多个域 - 但仅从一个域发送电子邮件。
显而易见的解决方案似乎是将证书文件复制到 Postfix 目录(希望提醒一下除了 .crt 之外我还需要移动哪些文件!)?
或者这是一个我不需要担心的警告?
任何帮助都非常感谢。
理查德。
答案1
由于多种原因,您实际上不必担心这一点。
日志消息的直接原因是 Postfix 的各个部分在 下以 chroot 方式运行
/var/spool/postfix
,因此这些部分将查找/var/spool/postfix/etc/ssl/certs/ca-certificates.crt
用于验证所提供证书的 TLS 信任锚列表。理论上,过期ca-certificates.crt
可能意味着 Postfix 的那些 chroot 部分可能无法识别“有效”证书,或者无法不信任自此不再受信任的 CA 颁发的证书。实际上,受信任根列表很少更改,因此不太可能出现问题。在证书的可信度方面,SMTP-over-TLS 与 HTTPS 不同。如今,互联网上运行的 SMTP 服务器几乎不会检查所提供证书是否可信,因为许多证书都无法通过验证——要么是因为名称不匹配,要么是过期,要么是由不受信任的 CA(通常是自签名的,但并非总是)颁发的。SMTP 运营商通常认为被动攻击者比主动攻击者更令人担忧,因此对不受信任的端点进行加密总比不加密要好(如果受 TLS 保护的连接被拒绝,就会自动发生这种情况)。
是的,显而易见的解决方案是将受到投诉的文件复制到 chroot 中。没有其他文件需要复制,因为您复制的不是 Postfix 自己的密钥/证书对,而是信任锚列表,它们都包含在一个文件中。