Letsencrypt 适用于所有子域名 *.example.com

Letsencrypt 适用于所有子域名 *.example.com

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

这有效:

certbot-auto certonly --webroot --webroot-path /home/www/example/ --domain example.com 
                                --domain www.example.com --email [email protected]

但是这个(与 *.):

certbot-auto certonly --webroot --webroot-path /home/www/example/ --domain example.com 
                                --domain *.example.com --email [email protected]

失败:

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

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

答案1

正如评论中提到的,解决方案是使用 DNS 质询验证,如下所示:如何使用 Let's Encrypt DNS-01 挑战验证?

首先,使用以下命令删除以前的证书(如果需要):

certbot-auto delete 
# Or for newer versions
certbot --cert-name example.com # Name you can find in /etc/letsencrypt/live directory

然后使用 DNS 质询生成新证书:

certbot-auto -d *.example.com -d example.com --manual --preferred-challenges dns certonly
# Or for newer versions
certbot -d *.example.com -d example.com --manual --preferred-challenges dns certonly

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

_acme-challenge.example.com TXT Chs768564536576SDGdG6SQDYTZAEq

如果需要,重新启动 Apache/nginx,它就可以正常工作。

附言:就我而言,不需要安装身份验证器插件(它可能是开箱即安装的吗?)

重要提示:要验证通配符域名,您必须使用 DNS 验证,但是您可以使用多次选项一次验证多个子域-d

相关内容