我使用独立方法为多个域创建了多个 SSL 证书。我只对证书感兴趣,没有服务器集成。
他们现在正在更新。所以,我跑了:
certbot -d example.com --manual --preferred-challenges dns certonly
并遵循每个域的说明(为每个域添加所需的 DNS 条目)。这样,我不必停止服务器并获得我的新证书。
我对这一切的(模糊)理解是,目前没有使用 DNS 质询自动更新证书的方法。或者您可能无法为“手动”方法自动更新证书?
无论如何,我写了这个脚本:
#!/bin/bash
for i in renewal/*;do
n=${i:8:-5};
echo $n;
# echo "\n" | certbot --text --agree-tos -d $n --manual --preferred-challenges dns --expand --renew-by-default --manual-public-ip-logging-ok certonly;
done
此时,renewal
目录中的所有域都具有:
验证器 = 手动
和:
pref_challs = dns-01
问题:
现在......当我运行“certbot renew”时,它会在不使用我的脚本的情况下自动更新所有这些吗?
如何开始使用 DNS 质询实际创建新证书?
更新的答案(见下面的原始答案)
renew
在我最初的回答中,我关注的是使用命令时不需要您提供的脚本这一事实。但是,我不确定该renew
命令是否真的适用于这种情况。正如评论中的 cdhowie 和 bobpaul 所说:
certbot renew
是一种非交互模式,它与 dns 挑战结合使用 - 要求您通过--manual-auth-hook
参数提供脚本。所述脚本必须能够设置TXT
记录。您还可以通过参数提供另一个脚本进行清理--manual-cleanup-hook
。如果您提供这些参数,整个过程将自动运行,无需任何交互。
如果您不提供这些参数,则 certbot 将失败:
如果要通过手动模式更新证书,则必须重新运行用于获取证书的命令。在这种情况下,您的脚本是一个不错的选择,因为该命令不会查看当前的证书/配置,而是要求您通过参数或以交互模式
certonly
提供域名。-d
当我运行“certbot renew”时,它会在不使用我的脚本的情况下自动更新所有这些吗?
TL;DR:是的,应该。
让我们看一下certbot 的文档:
到目前为止,一切都很好。
这应该回答你的问题。当心:我不知道如何
certbot
处理将证书移动到不同目录的情况。稍后在同一段中:
所以,是的;
certbot
应该在没有脚本帮助的情况下更新所有证书。我如何实际使用 DNS 质询创建新证书?
您在帖子开头发布的命令有什么问题?
certbot -d example.com --manual --preferred-challenges dns certonly
将使用 dns 质询获取 example.com 的证书。创建证书的步骤如下:
certbot
您发布的命令certbot
命令如果你想自动化整个过程,你可能想看看像乐高这样支持几个DNS 提供商的工具。