使用certbot续订域名并使用DNS挑战

我使用独立方法为几个域创build了几个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目录中的所有域都有:

authenticator =手动

和:

 pref_challs = dns-01 

问题:

  • 现在…当我运行“certbot更新”,它会自动更新所有这些,而不使用我的脚本?

  • 如何实际上使用DNS挑战创build新的证书?

当我运行“certbot更新”,它会自动更新所有这些,而不使用我的脚本?

TL; DR:是的,应该的。

让我们看看certbot的文档 :

从版本0.10.0开始,Certbot支持更新操作,以检查所有已安装的证书是否即将到期,并尝试更新它们。 最简单的forms是简单的

certbot续约

到现在为止还挺好。

此命令尝试续订先前获得的证书,证书在30天内过期。

这应该回答你的问题。 注意:我不知道certbot能够处理将证书移动到不同目录的情况。

后来在同一段中:

除非您指定其他插件或选项,否则与原始颁发证书时使用的相同的插件和选项将用于续订尝试。 不像certonlyrenew行为在多个证书上,并且总是考虑每个证书是否即将到期。

所以,是的。 certbot应该在没有你的脚本的帮助下更新所有的证书。

如何实际上使用DNS挑战创build新的证书?

您在post开始处发布的命令有什么问题? certbot -d example.com --manual --preferred-challenges dns certonly将使用dns挑战获取example.com的证书。

创build证书的步骤是:

  • 运行你发布的certbot命令
  • 等待命令显示您的DNS TXTlogging
  • 创buildTXTlogging
  • 继续certbot命令
  • 获取指定域的证书
  • 删除TXTlogging(因为你只需要它的创build和一个新的更新)

如果你想自动完成这个完整的过程,你可能需要看看lego这样的工具,它支持几个DNS提供者 。