lets-encrypt - certbot 每天创建一个新证书
问题描述
我有一个脚本,当它可用时自动更新一个让我们加密的证书。我们每天 17:00 运行这个脚本
#!/bin/sh
/usr/bin/certbot --cert-name sitename.com --text --agree-tos certonly -a webroot --keep-until-expiring --webroot-path /var/www/path/public -d sitename.com -d www.sitename.com
最近我看到每天都会生成一个带有00XX
后缀的新目录的新证书。
此文件自创建以来一直没有机会(8 月 19 日)
所以/etc/letsencrypt/archive
看起来像这样:
drwxr-xr-x. 2 root root 4096 Nov 11 09:45 sitename.com
drwxr-xr-x. 2 root root 4096 Aug 19 16:39 sitename.com-0001
drwxr-xr-x. 2 root root 4096 Aug 19 16:43 sitename.com-0002
drwxr-xr-x. 2 root root 4096 Oct 16 17:00 sitename.com-0003
drwxr-xr-x. 2 root root 4096 Oct 17 17:00 sitename.com-0004
drwxr-xr-x. 2 root root 4096 Oct 18 17:00 sitename.com-0005
drwxr-xr-x. 2 root root 4096 Oct 19 17:00 sitename.com-0006
drwxr-xr-x. 2 root root 4096 Oct 20 17:00 sitename.com-0007
drwxr-xr-x. 2 root root 4096 Oct 23 17:00 sitename.com-0008
drwxr-xr-x. 2 root root 4096 Oct 24 17:00 sitename.com-0009
drwxr-xr-x. 2 root root 4096 Oct 25 17:01 sitename.com-0010
drwxr-xr-x. 2 root root 4096 Oct 26 17:00 sitename.com-0011
drwxr-xr-x. 2 root root 4096 Oct 27 17:00 sitename.com-0012
drwxr-xr-x. 2 root root 4096 Oct 30 17:00 sitename.com-0013
drwxr-xr-x. 2 root root 4096 Oct 31 17:00 sitename.com-0014
drwxr-xr-x. 2 root root 4096 Nov 1 17:00 sitename.com-0015
drwxr-xr-x. 2 root root 4096 Nov 2 17:00 sitename.com-0016
drwxr-xr-x. 2 root root 4096 Nov 3 17:00 sitename.com-0017
drwxr-xr-x. 2 root root 4096 Nov 6 17:00 sitename.com-0018
drwxr-xr-x. 2 root root 4096 Nov 7 17:00 sitename.com-0019
drwxr-xr-x. 2 root root 4096 Nov 8 17:00 sitename.com-0020
drwxr-xr-x. 2 root root 4096 Nov 9 17:01 sitename.com-0021
drwxr-xr-x. 2 root root 4096 Nov 10 17:00 sitename.com-0022
我相信-0001
并且-0002
是由于首次生成证书时配置错误而创建的。
但是任何人都可以帮助解释为什么自 10 月 16 日以来每天都创建证书和目录?
解决方案
我设法找出问题所在。
运行后
/usr/bin/certbot certificates
出现错误:
Renewal configuration file /etc/letsencrypt/renewal/sitename.com.conf produced an unexpected error: renewal config file {} is missing a required file reference. Skipping.
似乎conf
每个-00XX
目录都有一个文件。
看了下,/etc/letsencrypt/renewal/sitename.com.conf
发现文件是空的。
所以我拿了最新的-00XX
conf
文件并00XX
从文本行中删除了后缀。
该conf
文件应如下所示:
# renew_before_expiry = 30 days
version = 1.0.0
archive_dir = /etc/letsencrypt/archive/sitename.com
cert = /etc/letsencrypt/live/sitename.com/cert.pem
privkey = /etc/letsencrypt/live/sitename.com/privkey.pem
chain = /etc/letsencrypt/live/sitename.com/chain.pem
fullchain = /etc/letsencrypt/live/sitename.com/fullchain.pem
# Options used in the renewal process
[renewalparams]
authenticator = webroot
account = XXXXXXXXXXXXXXXXXXXXXXX
webroot_path = /var/www/path/public,
server = https://acme-v02.api.letsencrypt.org/directory
但这仍然会为每天创建一个新目录和证书
您需要将此添加到您的conf
文件中,为与您的证书关联的每个域添加一行。
[[webroot_map]]
sitename.com = /var/www/path/public
www.sitename.com = /var/www/path/public
这应该可以防止每天生成证书。
我认为问题是从证书中删除域并手动更新的结果。
推荐阅读
- php - Messenger __invoke 方法中的 Swiftmailer 不发送邮件
- android - 如何确保在解析数组时不返回重复的 JSON 数据?
- javascript - Gulp 4. browser-sync 的问题 // 以下任务没有完成:browser-sync
- java - 在 Google Play 商店发布应用程序后,如果我的应用程序依赖于 Google 登录,我该如何测试它?
- sql - 使用 SQL 查询获取要插入的 VB 变量
- tensorflow - Google Cloud ml-engine 在加载 libnccl 时失败
- ios - 如何在 iOS 上的同一设备上的应用程序之间进行自动数据共享
- suse - 在 SUSE 11 中使用 xm top 时如何按排序显示 VM 的内存
- c - x11中的覆盖窗口不断闪烁
- r - 如何用数字子串动态字符(例如:$1000, 100units)