如何让 dovecot 以最小的影响重新加载 SSL 证书

dav*_*dgo 3 dovecot

我无法找到任何有关如何强制 Dovecot 在证书更新时重新读取证书的文档。

此刻我正在做

 /bin/systemctl restart dovecot
Run Code Online (Sandbox Code Playgroud)

有谁知道这是否会导致重新启动期间中断,或者 dovecot 是否干净地终止旧会话并允许使用新配置启动新会话?任何人都可以建议强制 dovecot 重新加载其 SSL 证书且影响最小的最佳实践吗?

z0l*_*0lo 6

如果您使用 LetsEncrypt,您可以添加一个部署挂钩,以便在 certbot 续订您的证书时自动执行此操作。部署钩子位于:

/etc/letsencrypt/renewal-hooks/deploy/
Run Code Online (Sandbox Code Playgroud)

reload-dovecot创建一个包含以下内容的文件(名称并不重要 - 我将其命名为“我的” ):

#!/bin/sh
do
if [ "$domain" = mail.example.com ]
then
systemctl reload dovecot
fi
done
Run Code Online (Sandbox Code Playgroud)

替换mail.example.com为您的邮件服务器的实际名称。确保该文件设置为可执行。

您可能想要创建一个类似的脚本来重新加载 postfix。

鸽舍的答案取自这里:https://www.xhalford.com/using-hook-scripts-with-certbot/# :~:text=Luckily%2C%20Certbot%20comes%20with%20the,renewal%2Dhooks%2Fdeploy %2F%20

您还可以使用 certbot 本身来创建挂钩:

sudo certbot renew --force-renewal --deploy-hook "postfix reload; service dovecot reload"
Run Code Online (Sandbox Code Playgroud)

请参阅此处的线程:https://community.letsencrypt.org/t/certbot-dovecot-postfix-certificate-renewal-issue/72226/11

注意:线程中的示例使用service postfix reload- 这在 Ubuntu 20.x 上对我不起作用。