我一直在寻找一个很好的解决方案来更新 Let's Encrypt 的 WILDCARD 证书。
设置通配符证书很容易:
Apache Debian 9 拉伸:
sudo apt-get install certbot python-certbot-apache -t stretch-backports
sudo certbot certonly --cert-name CERTNAME --server https://acme-v02.api.letsencrypt.org/directory --manual --preferred-challenges dns -d 'DOMAIN.co,*.DOMAIN.co'
在 DNS 设置之后,它创建了证书。但现在我不想每 90 天处理一次以进行续订。我一直在为 Cron Job 寻找一个好的解决方案。大多数 Cron Job 解决方案的问题在于它们适用于非通配符域。
我喜欢这个解决方案,它每天检查证书是否可以更新,如果它允许自己更新它:
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && certbot renew
通配符证书的问题在于它有一个 DNS 设置组件,并且certbot renew
不适用于手动 certbot 设置。
我正在寻找一个像这样的 Cron Job:
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && certbot certonly --cert-name CERTNAME --server https://acme-v02.api.letsencrypt.org/directory --manual --preferred-challenges dns -d 'DOMAIN.co,*.DOMAIN.co'
但我认为这不适用于 DNS 设置。
如何创建 Cron 作业以有效地更新通配符证书属性?