Postfix 文档针对客户端证书参数规定了以下内容:smtp_tls_cert_文件:
smtp_tls_cert_file(默认值:空)
[...] 除非必须向一台或多台服务器提供客户端 TLS 证书,否则不要配置客户端证书。客户端证书通常不是必需的,并且可能会导致在没有它们的情况下运行良好的配置出现问题。建议的设置是保留默认值:
(请注意,这不是smtp_tls_cert_file
smtpd)。
“可能会导致没有它们也能正常工作的配置出现问题”这个说法相当含糊。配置客户端证书和密钥文件可能导致问题的例子有哪些?
可能的示例配置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 相关的规则:即使不需要该证书。最终会根据证书拒绝客户端……即使在直接的情况下忽略证书本来就没问题。为什么他们可以这样做?因为除非他们与另一方有特定协议,否则任何人都不会配置客户端证书,这是非常罕见的。因为他们可以放心地假设,如果如果您发送了证书,则说明您是那些已知方之一,可以并且应该期望您也遵循其在其他领域的政策。
您的配置符合 客户端证书要求 |
您的配置未能满足其他 客户端证书要求 |
|
---|---|---|
无证书,无预期 | 作品 | 作品 |
无需证书,可选 | 作品 | 作品 |
你向期望证书的一方发送证书 | 作品 (使用证书) |
拒绝 (根据与发行人的协议) |
你向意想不到的一方发送了证书 | 可能会有效 (忽略证书) |
哦不!您的连接因涉及您不需要使用的 功能的额外规则而被拒绝。 |
建议:仅在需要时才进行配置,并且最好坚持常见且易于配置的情况绝不或者总是(到单个中继主机)发送客户端证书。