我处于一种特殊而不幸的情况,我们的网络管理员突然去世了,没有人准备接管服务器管理。我们有一个运行面向客户端的 API 的内部 Linux VM,我刚刚收到通知,Let's Encrypt SSL 将于 2021 年 7 月 1 日到期。
我不确定网络管理员是否将其设置为自动更新...certbot
在“正常”crontab(通过访问crontab -e
)中没有提及,但其中有以下内容/etc/cron.d/certbot
:
0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(43200))' && certbot -q renew
注意:我对此并不熟悉,因此上面的描述可能不准确......
我可以通过服务器上的用户进行 SSH 访问,但没有 root 访问权限。网络管理员似乎没有将 root 密码存储在任何地方。如果我尝试通过 手动更新 SSL 以确保安全certbot renew --dry-run
,我会得到以下信息:
The following error was encountered:
[Errno 13] Permission denied: '/var/log/letsencrypt/.certbot.lock'
Either run as root, or set --config-dir, --work-dir, and --logs-dir to writeable paths.
那么,有没有办法确定现有的 SSL 最终是否会自动续订,或者有没有无需 root 访问权限即可续订的方法?
提前致谢。
答案1
如果您想在不停机的情况下替换此证书(如果它不会自行更新),我只看到一个选项 - 第二台服务器上的反向代理。
总而言之,你必须闯入。最简单的方法是重新启动服务器,添加启动参数“single init=/bin/bash”,使用 passwd 更改密码,然后再次重新启动 - 可能有一些额外的步骤取决于发行版 - 你会在互联网上轻松找到说明。