我想获得一个适用于我的所有子域名的证书*.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
。