今天我在 Postfix main.cf 文件中更改了 TLS 证书路径。结果发现这些路径已损坏。
几分钟后,Postfix 读取了这些更改的路径,并且我的 TLS 连接中断(由于路径中断)。
问题 1:为什么 Postfix 会自动从 main.cf 文件中读取更改?有记录吗?我找不到有关它的任何信息。
问题 2:我可以关闭此行为吗?我预计 Postfix 会在服务重新加载后替换证书,而不是即时替换。
谢谢
答案1
拾取更改是通过设计大多数 Postfix 组件中的标准程序。事实上,Postfix 的许多部分明确允许在任何时候将正在运行的进程换成新的进程。许多配置参数都设置为最终自动生效 - 无论是否需要人工干预(reload
)。
由于 smtpd(8) 进程只运行有限的时间,因此对 main.cf 的更改会自动生效。使用命令“postfix reload”可加快更改速度。-人 8 smtpd
如果您管理证书的方式使得此类重新加载不受欢迎,建议您将证书和匹配的密钥放在一起,只有当这种重新加载操作安全时才会更改的文件中。
对于 Postfix ≥ 3.4,配置服务器密钥和证书的首选方法是通过“smtpd_tls_chain_files”参数。-man 5 postconf
请参阅参数的文档smtpd_tls_chain_files
以获取更多解释。
答案2
最有可能的是,当您进行配置时,Postfix 重新启动了,或者收到了 SIGHUP 信号。
守护进程重新启动/重新加载的一个常见原因是 logrotate:它可能会重新启动/重新加载服务,以便它们在日志轮换后重新打开其配置文件。
Postfix 也可能由于其他原因崩溃,然后 systemd 重新启动了它。
我建议在 Postfix 发生故障时检查您的日志中是否存在其他事件(cron 作业运行等)。