安装成功后找不到 certbot cron 作业

安装成功后找不到 certbot cron 作业

我在 Node 中开发了一个 REST API,并在其前面安装了 nginx 作为反向代理,以便处理来自 Letsencrypt 的 SSL 证书。这是我第一次设置 nginx,但一切似乎都按预期工作。certbot 安装很顺利,证书已到位并正常工作。我唯一担心的是,我看不到任何自动续订的证据。

Certbot 文档说:

更新 certbot 的命令安装在以下位置之一:

/etc/crontab/
/etc/cron.*/*
systemctl list-timers

我检查了上述所有位置,但任何地方都找不到 certbot 的踪迹。运行时sudo certbot renew --dry-run没有任何错误消息,但据我所知没有创建 cron 作业或计时器。文档是否过时了,还是我缺乏 Linux 技能?

该服务器正在运行 Ubuntu 20.04.1 LTS 和 nginx/1.18.0(Ubuntu)。

答案1

在 Ubuntu 18.04+ 上,默认情况下,certbot 应/etc/cron.d/certbot每 12 小时添加并运行一次(*/12)。如果您在那里没有看到文件,您可以通过执行sudo crontab -e 并添加遵循模板说明的简单作业来创建自己的 cronjob。您需要确保 cron 了解 certbot 所在的位置,或者使用完整路径。通常,完整路径比希望 cron 知道您的更好PATH。默认情况下,certbot 应该位于/usr/local/bin/certbot

您可以通过以下方式验证 certbot 的位置which certbot

您应该在 cron 作业中输入的命令是/path/to/certbot renew

要在每个月的每个日子、每周的每一天运行午夜更新,如果一切都是默认的,并且您使用的是 Ubuntu,那么您在 cron 中添加的完整行将是:

# m h DoM Mon DoW        command:
  0 0 *   *   *          /usr/local/bin certbot renew

答案2

看起来最近的配置将更新放入了 systemd 而不是 cron。请参见此处Certbot 用户指南

答案3

引用https://certbot.eff.org/docs/using.html?highlight=renew#automated-renewals

自动更新 大多数 Certbot 安装都预配置了自动更新。这是通过定期运行 certbot renew 的计划任务完成的。

如果您不确定是否需要配置自动续订:

查看您的系统和安装方法的说明 https://certbot.eff.org/instructions。他们将描述如何设置计划任务(如有必要)。如果未列出任何步骤,则表示您的系统已预装自动更新,您无需采取任何其他操作。

在 Linux 和 BSD 上,您可以检查您的安装方法是否已为您预装了计时器。为此,请在系统的 crontab 中查找 certbot renew 命令(通常是 /etc/crontab 或 /etc/cron。/或 systemd 计时器(systemctl 列表计时器)。

如果您仍不确定,可以按照下一节中的步骤手动配置自动续订。Certbot 经过精心设计,可以处理手动自动续订和预装自动续订的情况。

相关内容