如何在 Amazon Linux 2 AMI EC2 实例上为 Apache 设置 Let's Encrypt 通配符证书?

如何在 Amazon Linux 2 AMI EC2 实例上为 Apache 设置 Let's Encrypt 通配符证书?

我有一个域(假设example.com),并且我当前已设置一个 Let's Encrypt 证书并且该证书可以在 Amazon Linux 2 AMI EC2 实例上为 Apache 正常工作example.comwww.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

运行该命令后,我收到以下消息:

Let's Encrypt 通配符证书尝试

然后,我按照提示在 Google Domains 中的 DNS 设置中添加一条 TXT 记录,如下所示:

Google Domains DNS 设置

然后,我使用以下站点并输入 URL _acme-challenge/ 主机名来验证 TXT 记录是否存在:

https://dnslookup.online/txt.html

确认记录存在后,我在 SSH 控制台中按下 Enter 键,但出现以下错误:

Let's Encrypt 通配符证书错误消息

我做错了什么,导致我无法颁发通配符证书?任何帮助/指导都将不胜感激。谢谢。

编辑:我应该指出,我使用以下帖子作为此内容的起点: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.confServerAlias*.example.com

相关内容