AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 879647
Accepted
Merc
Merc
Asked: 2017-10-22 15:43:43 +0800 CST2017-10-22 15:43:43 +0800 CST 2017-10-22 15:43:43 +0800 CST

使用 certbot 和使用 DNS 质询更新域

  • 772

我使用独立方法为多个域创建了多个 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 质询实际创建新证书?

lets-encrypt
  • 1 1 个回答
  • 61668 Views

1 个回答

  • Voted
  1. Best Answer
    malte
    2017-10-22T22:50:06+08:002017-10-22T22:50:06+08:00

    更新的答案(见下面的原始答案)

    renew在我最初的回答中,我关注的是使用命令时不需要您提供的脚本这一事实。但是,我不确定该renew命令是否真的适用于这种情况。

    正如评论中的 cdhowie 和 bobpaul 所说:certbot renew是一种非交互模式,它与 dns 挑战结合使用 - 要求您通过--manual-auth-hook参数提供脚本。所述脚本必须能够设置TXT记录。您还可以通过参数提供另一个脚本进行清理--manual-cleanup-hook。

    如果您提供这些参数,整个过程将自动运行,无需任何交互。

    如果您不提供这些参数,则 certbot 将失败:

    /opt/certbot # certbot renew --force-renewal
    Saving debug log to /var/log/letsencrypt/letsencrypt.log
    
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Processing /etc/letsencrypt/renewal/foobar.w9f.de.conf
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Could not choose appropriate plugin: The manual plugin is not working; there may be problems with your existing configuration.
    The error was: PluginError('An authentication script must be provided with --manual-auth-hook when using the manual plugin non-interactively.',)
    

    如果要通过手动模式更新证书,则必须重新运行用于获取证书的命令。在这种情况下,您的脚本是一个不错的选择,因为该命令不会查看当前的证书/配置,而是要求您通过参数或以交互模式certonly提供域名。-d


    当我运行“certbot renew”时,它会在不使用我的脚本的情况下自动更新所有这些吗?

    TL;DR:是的,应该。

    让我们看一下certbot 的文档:

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

    certbot 更新

    到目前为止,一切都很好。

    此命令尝试更新任何先前获得的在 30 天内到期的证书。

    这应该回答你的问题。当心:我不知道如何certbot处理将证书移动到不同目录的情况。

    稍后在同一段中:

    除非您指定其他插件或选项,否则最初颁发证书时使用的相同插件和选项将用于续订尝试。与 不同certonly,renew作用于多个证书并始终考虑每个证书是否即将到期。

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


    我如何实际使用 DNS 质询创建新证书?

    您在帖子开头发布的命令有什么问题? certbot -d example.com --manual --preferred-challenges dns certonly将使用 dns 质询获取 example.com 的证书。

    创建证书的步骤如下:

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

    如果你想自动化整个过程,你可能想看看像乐高这样支持几个DNS 提供商的工具。

    • 13

相关问题

  • 为具有分布式流量的多个 Apache 服务器使用 Lets Encrypt SSL

  • 我是否需要在 LAMP 中为 HTTPS 网站配置端口 80?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve