我在 CentOS 7 上使用内核 3.10。我已使用以下方法成功安装了 CertBot 1.10.1备选安装说明为certbot-auto
。运行certbot-auto
成功为我的 nginx (1.7.8) 安装生成了证书。使用 模拟续订sudo /usr/local/bin/certbot-auto renew --dry-run
也成功了。
问题是我无法找到/确认 certbot 是否确实已安装并可自动启动。文档表明 CentOS EPEL 7 应该使用 systemd。但是,正在运行systemctl list-timers --all
表明没有为 CertBot 设置计时器。没有任何/etc/systemd/system/
与 CertBot 相关的内容。我检查了crontab -l
一下以防万一——什么都没有。
为什么没有设置自动续订?
这是文档中的错误,还是我遗漏了什么?
我应该去别处看看吗?我应该手动创建计时器/作业吗?
certbot 1.10.1
nginx 1.7.8
kernel 3.10.0-123.20.1.el7.x86_64
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"
PS 我使用了替代安装方法,因为使用 snapd 的默认 CertBot 安装不起作用 —— 它抱怨:
error: system does not fully support snapd: cannot read the value of
fs.may_detach_mounts kernel parameter: open
/proc/sys/fs/may_detach_mounts: no such file or directory
我认为这意味着我的内核版本太旧,snapd 无法工作。
答案1
systemd
我已通过创建以下文件手动将 certbot-auto 添加到自动运行中:
/etc/systemd/system/certbot-renewal.service
:
[Unit]
Description=Certbot Renewal
[Service]
ExecStart=/usr/local/bin/certbot-auto renew --quiet
/etc/systemd/system/certbot-renewal.timer
:
[Unit]
Description=Timer for Certbot Renewal
[Timer]
OnBootSec=1h
OnUnitActiveSec=1d
[Install]
WantedBy=multi-user.target
并运行以下命令:systemctl enable --now certbot.timer