我一直在寻找一个好的解决方案来更新 Let's Encrypt 的 WILDCARD 证书。
设置通配符证书非常简单:
Apache Debian 9 Stretch:
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 Job 来有效地更新通配符证书属性?