一整天,我主要在 TLS 区域修复错误,但这个问题并不是专门针对 TLS 的。
好吧,我有一个带有几个网站的网络服务器,每个网站都有自己的 SSL 证书。
但就这一点而言,我设法在我的 Debian 9.2 上安装了 Certbot 版本 0.19.0,如下所示:
向源添加反向端口:
deb http://ftp.debian.org/debian stretch-backports main
从后端安装较新版本的 Certbot:
apt-get install python-certbot-apache -t stretch-backports
之后,我不得不对续订文件进行一些大的调整,所以看起来是这样的:
# renew_before_expiry = 30 days
version = 0.10.2
archive_dir = /etc/letsencrypt/archive/pavelstriz.cz-0001
cert = /etc/letsencrypt/live/pavelstriz.cz-0001/cert.pem
privkey = /etc/letsencrypt/live/pavelstriz.cz-0001/privkey.pem
chain = /etc/letsencrypt/live/pavelstriz.cz-0001/chain.pem
fullchain = /etc/letsencrypt/live/pavelstriz.cz-0001/fullchain.pem
# Options used in the renewal process
[renewalparams]
authenticator = webroot
installer = apache
rsa_key_size = 4096
account = c3f3d026995c1d7370e4d8201c3c11a2
must_staple = True
[[webroot_map]]
pavelstriz.cz = /home/pavelstriz/public_html
www.pavelstriz.cz = /home/pavelstriz/public_html
在此之后,我设法更新了pavelstriz.cz
域:
certbot renew --dry-run
但让我担心的是每日 Certbot 的 cron:
# /etc/cron.d/certbot: crontab entries for the certbot package
#
# Upstream recommends attempting renewal twice a day
#
# Eventually, this will be an opportunity to validate certificates
# haven't been revoked, etc. Renewal will only occur if expiration
# is within 30 days.
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 -q renew
我不知道它是否真的有效或如何成功运行它?
如果我运行:
/usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && certbot -q renew
在 Bash 中,它说:
Saving debug log to /var/log/letsencrypt/letsencrypt.log
The requested ! plugin does not appear to be installed
我可能误解了这些命令。
cron 运行的实际命令是:
它首先测试一些文件
翻译成
/usr/bin/certbot
存在并且可执行 (-x /usr/bin/certbot
)-a \!
)/run/systemd/system
存在并且是一个目录 (-d /run/systemd/system
)如果测试成功,请等待随机数秒 (
perl -e 'sleep int(rand(3600))'
),然后尝试更新证书 (certbot -q renew
)。但是,在 Debian 9 上,
systemd
默认安装,这意味着它/run/systemd/system
存在并且是一个目录,因此初始测试失败并且永远不会运行更新命令。实际更新由文件中定义的 systemd 计时器管理
lib/systemd/system/certbot.timer
。从 0.27.0-1 版开始;它的内容是:如果 cerbot 配置正确,您可能应该找到类似的行
在你的
syslog
.嗯,也许,有点:-)
此条目:
我无法做出正面或反面。实际上,您所需要的只是:
或者,如果您不希望收到来自以下地址的任何电子邮件
cron
:如果你运行 (as
root
)certbot renew
你会看到你是否正确配置了东西:您还可以使用
certificates
参数 withcertbot
来显示有关您的证书的信息: