Letsencrypt 所有子域 *.example.com

Bas*_*asj 0 https ssl-certificate lets-encrypt certbot

我想获得一份适用于我所有子域的证书*.example.com

这有效:

certbot-auto certonly --webroot --webroot-path /home/www/example/ --domain example.com 
                                --domain www.example.com --email certbot@example.com
Run Code Online (Sandbox Code Playgroud)

但这(与 *.):

certbot-auto certonly --webroot --webroot-path /home/www/example/ --domain example.com 
                                --domain *.example.com --email certbot@example.com
Run Code Online (Sandbox Code Playgroud)

失败:

获取新证书
执行以下质询:
具有当前选定身份验证器的客户端不支持满足 CA 的任何质询组合。您可能需要使用可以通过 DNS 进行挑战的身份验证器插件。

如何使用certbot-auto生成证书*.example.com

Bas*_*asj 5

如评论中所述,解决方案是使用 DNS 质询验证,例如:如何使用让我们加密 DNS 质询验证?.

首先删除您以前的证书(如果需要):

certbot-auto delete 
Run Code Online (Sandbox Code Playgroud)

然后生成一个带有 DNS 质询的新证书:

certbot-auto -d *.example.com -d example.com --manual --preferred-challenges dns certonly
Run Code Online (Sandbox Code Playgroud)

然后将 TXT 挑战复制/粘贴到您的 DNS 设置中,例如:

_acme-challenge.example.com TXT Chs768564536576SDGdG6SQDYTZAEq
Run Code Online (Sandbox Code Playgroud)

如果需要,重新启动 apache,它可以工作。

PS:在我的情况下,不需要安装身份验证器插件(它可能是开箱即用的吗?)

  • 证书是自动更新还是我必须每 X 天更新一次? (2认同)