您从哪里获得用于 Postfix 的 CA 捆绑包 (crt)?

您从哪里获得用于 Postfix 的 CA 捆绑包 (crt)?

学习 postfix,我已经在我的服务器上设置了 SSL,并且一切正常。

Untrusted TLS connection established在我下载 Equifax SSL CA 包并将其添加到我的 CA 包之前,Google/Gmail 一直提示此信息。现在trusted connection,每当向 Google 发送电子邮件时,它都会提示此信息。

因此,我现在尝试对 Yahoo 和 Outlook365 连接执行相同操作。Untrusted TLS connection established每当我向其发送电子邮件时,连接都会发出提示。

我这样做对吗?是下载 CA 软件包并将它们放入我的 CA 软件包中吗?我试过ssl_CA_path把它们放进去,但那没用,只是smtp_tls_CAfile看起来有用。

  • Centos 6.7
  • 后缀 3.2.2

答案1

每个 (主要的) Linux 发行版都附带来自所有通常受信任的主要机构的 CA 证书。

这是 CentOS 的默认位置:

smtpd_tls_CAfile = /etc/ssl/certs/ca-bundle.crt

这应该默认使用,所以除非您只想信任自己的 CA,否则不需要此行。

CA 文件由软件包提供ca-certificates。如果出于某种原因 CA 软件包不存在,您可以使用 进行安装yum install ca-certificates

答案2

我从如何解决 Debian 上 Postfix 中不受信任的服务器证书? 如果涉及 Lets Encrypt,答案会略有不同。

首先,确保您清楚 smtp_* 和 smtpd_* 参数。由于您关心邮件的发送,因此您应该担心 smtp_* 参数。 postfix/smtp 和 postfix/smtpd 有什么区别

对于我来说,这个设置适用于 Let's Encrypt 证书。许多论坛告诉我将全链引用为 smtp_tls_CAfile,但他们没有提到您还需要设置 smtp_tls_CApath 参数。在使用这四行代码使其工作后,我注释掉了 smtp_tls_CAfile,它只使用 smtp_tls_CApath 就可以工作

smtp_tls_cert_file=/etc/letsencrypt/live/example.com/cert.pem
smtp_tls_key_file=/etc/letsencrypt/live/example.com/privkey.pem
#smtp_tls_CAfile=/etc/letsencrypt/live/example.com/fullchain.pem #optional
smtp_tls_CApath = /etc/ssl/certs

相关内容