Postfix TLS:使用客户端证书时出现的问题示例

Postfix TLS:使用客户端证书时出现的问题示例

Postfix 文档针对客户端证书参数规定了以下内容:smtp_tls_cert_文件

smtp_tls_cert_file(默认值:空)

[...] 除非必须向一台或多台服务器提供客户端 TLS 证书,否则不要配置客户端证书。客户端证书通常不是必需的,并且可能会导致在没有它们的情况下运行良好的配置出现问题。建议的设置是保留默认值:

(请注意,这不是smtp_tls_cert_filesmtpd)。

“可能会导致没有它们也能正常工作的配置出现问题”这个说法相当含糊。配置客户端证书和密钥文件可能导致问题的例子有哪些?

可能的示例配置main.cf如下

smtp_tls_cert_file=$smtpd_tls_cert_file
smtp_tls_key_file=$smtpd_tls_key_file

答案1

示例 1:有人可能要求,如果您确实提供了客户端证书,则必须在 TLS1.3 通道上提供,并拒绝客户端通过 TLS1.0 通道发送证书。否则,允许使用 TLS1.0 通道进行未经身份验证的提交。

示例 2:SMTP 客户端和对等端之间的代理或防火墙出现故障,可能会影响某些传输功能或证书属性。操作员可能不知道或不关心该故障,因为它既不影响未经身份验证的提交,也不影响他实际向其颁发证书的对等端。

配置客户端证书使你选择参加您应该避免使用其他限制(可能不明显,取决于您的 TLS 工具包、您的同行 TLS 工具包和您的同行本地策略),除非您真正需要该功能的情况。

条件访问限制的配置有些棘手,因此管理员通常会这样做:始终对所有客户端证书强制执行所有与 mTLS 相关的规则:即使不需要该证书。最终会根据证书拒绝客户端……即使在直接的情况下忽略证书本来就没问题。为什么他们可以这样做?因为除非他们与另一方有特定协议,否则任何人都不会配置客户端证书,这是非常罕见的。因为他们可以放心地假设,如果如果您发送了证书,则说明您是那些已知方之一,可以并且应该期望您也遵循其在其他领域的政策。

您的配置符合
客户端证书要求
您的配置未能满足其他
客户端证书要求
无证书,无预期 作品 作品
无需证书,可选 作品 作品
你向期望证书的一方发送证书 作品
(使用证书)
拒绝
(根据与发行人的协议)
你向意想不到的一方发送了证书 可能会有效
(忽略证书)
哦不!您的连接因涉及您不需要使用的
功能的额外规则而被拒绝。

建议:仅在需要时才进行配置,并且最好坚持常见且易于配置的情况绝不或者总是(到单个中继主机)发送客户端证书。

相关内容