在 Postfix 中,smtpd_tls_CApath 是否优先于 smtpd_tls_CAfile 或反之亦然?

在 Postfix 中,smtpd_tls_CApath 是否优先于 smtpd_tls_CAfile 或反之亦然?

我正在配置 Postfix 服务器(CentOS 8 上的版本 3.3.1)

如果我同时配置 smtpd_tls_CAfile 和 smtpd_tls_CApath,postfix 会加载所有证书还是会选择其中一个选项?

我无法从这里的文档中看出:http://www.postfix.org/postconf.5.html#smtp_tls_CApath

答案1

基于源代码它将接受两个参数并使用它们来调用 OpenSSL 函数SSL_CTX_load_verify_locations。此函数将路径和文件都添加到 SSL 上下文中,并且在验证证书时将检查两者是否为受信任的 CA。换句话说:这些参数不是唯一的,但会考虑这两个值。

答案2

在过去的糟糕日子里,一些操作系统会将受信任的 CA 证书放在单独的文件中,所有文件都放在某个目录中。这是您将使用的目录smtpd_tls_CApath

到 21 世纪为止,几乎所有 Linux 发行版都附带一个预构建的单个文件,其中包含所有受信任的 CA 证书。它的位置因 Linux 发行版而异,但无论它放在哪里,它都是您将使用的文件名smtpd_tls_CAfile

这些选项是互斥的。你只能使用其中之一,具体取决于你的操作系统如何发送其受信任的 CA 证书。最有可能的是smtpd_tls_CAfile。在 CentOS 8 上,CA 证书包位于/etc/pki/tls/certs/ca-bundle.crt,为你提供以下main.cf配置:

smtpd_tls_CAfile=/etc/pki/tls/certs/ca-bundle.crt

相关内容