我有一个域(假设example.com
),并且我当前已设置一个 Let's Encrypt 证书并且该证书可以在 Amazon Linux 2 AMI EC2 实例上为 Apache 正常工作example.com
,www.example.com
我正在尝试重新配置该证书以将其设置为通配符域(即*.example.com
)。
我通过 SSH 进入 EC2 实例并运行以下命令尝试执行此操作(使用真实域,而不是example.com
):
sudo certbot certonly --manual --preferred-challenges=dns --server https://acme-v02.api.letsencrypt.org/directory -d example.com -d *.example.com
运行该命令后,我收到以下消息:
然后,我按照提示在 Google Domains 中的 DNS 设置中添加一条 TXT 记录,如下所示:
然后,我使用以下站点并输入 URL _acme-challenge
/ 主机名来验证 TXT 记录是否存在:
https://dnslookup.online/txt.html
确认记录存在后,我在 SSH 控制台中按下 Enter 键,但出现以下错误:
我做错了什么,导致我无法颁发通配符证书?任何帮助/指导都将不胜感激。谢谢。
编辑:我应该指出,我使用以下帖子作为此内容的起点:https://community.letsencrypt.org/t/you-may-need-to-use-a-different-authenticator-plugin/115026/4
答案1
我找到了问题所在。当我将 TXT 记录输入 Google Domains 时,我应该只输入_acme-challenge
主机名,但我输入了_acme-challenge.example.com
,这导致 TXT 记录主机名不正确。
在我修复了这个问题之后,第一个挑战成功通过,然后我必须通过第二个随机字符串挑战才能使其正常工作。
请注意,使用 Google Domains 时,对于第二个 TXT 挑战,您不应创建新的 TXT 记录或替换当前的 TXT 记录值。相反,您需要向现有 TXT 记录添加新值(同时保持第一个值不变)。
此外,在此工作后,我必须更新服务器上的/etc/httpd/conf/httpd.conf
和文件才能使其正常工作。完成后,不要忘记重新启动 Apache。希望这样做之后,它也能为您工作。/etc/httpd/conf/httpd-le-ssl.conf
ServerAlias
*.example.com