【发布时间】:2021-07-13 10:15:09
【问题描述】:
我在这里尝试做的是:我有一个由计时器控制的 systemd 服务,该计时器处理letsencrypt证书的更新。配置文件中规定了这些证书的外观。
[Unit]
Description=Let's Encrypt renewal
[Service]
Type=oneshot
Environment=CONFIG_FILE=/etc/letsencrypt/test.conf
ExecStart=-/usr/bin/certbot renew --quiet --agree-tos --noninteractive --no-random-sleep-on-renew
续订会运行一些后处理脚本,以确保部署和安装证书。
如果配置在证书生成和上次续订之间发生变化,这些脚本将找不到预期名称下的证书。然后脚本会自动触发另一个脚本,确保证书已创建:
if [[ ! -d /etc/letsencrypt/live/${CERT_NAME} ]]
then
#certificate folder we expect isn't there , request a new cert
. /etc/letsencrypt/renewal-hooks/request-new-cert.sh
fi
我遇到的问题是,在执行 request-new-cert.sh 期间,我收到一个错误 Another Instance of Certbot is already running,导致脚本失败。
我做错了吗?有没有更好的方法来尝试实现我想要做的事情?
【问题讨论】:
标签: bash certificate systemd lets-encrypt certbot