acme挑战失败。来自http://service.domain1.com/.well-known/acme-challenge/xWsuGIi0JmuEuDzS5qPkVX3oHuzY2kNl0YGoU6HltRg

问题描述 投票:0回答:2

当我尝试执行命令来添加 Lets Encrypt SSL 证书时,出现错误。您能帮我解决这个问题吗?

在服务器上运行命令以激活 LetsEncript SSL 证书

sudo certbot run -a webroot -i apache -w /var/www/html -d service.domain1.com --debug-challenges

错误信息

Invalid response from
http://service.domain1.com/.well-known/acme-challenge/xWsuGIi0JmuEuDzS5qPkVX3oHuzY2kNl0YGoU6HltRg
[35.186.238.101]: "<!doctype html><html lang=\"en\"><head><meta
http-equiv=\"content-type\"
content=\"text/html;charset=utf-8\"><meta name=\"viewport\" con"

这里我包含运行命令后的完整消息

ubuntu@ip-10-0-0-55:~$ sudo certbot run -a webroot -i apache -w /var/www/html -d service.domain1.com --debug-challenges
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator webroot, Installer apache
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for service.domain1.com
Using the webroot path /var/www/html for all unmatched domains.
Waiting for verification...

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Challenges loaded. Press continue to submit to CA. Pass "-v" for more info about
challenges.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Press Enter to Continue
Cleaning up challenges
Failed authorization procedure. service.domain1.com (http-01): urn:ietf:params:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from http://service.domain1.com/.well-known/acme-challenge/xWsuGIi0JmuEuDzS5qPkVX3oHuzY2kNl0YGoU6HltRg [35.186.238.101]: "<!doctype html><html lang=\"en\"><head><meta http-equiv=\"content-type\" content=\"text/html;charset=utf-8\"><meta name=\"viewport\" con"

IMPORTANT NOTES:
 - The following errors were reported by the server:

   Domain: service.domain1.com
   Type:   unauthorized
   Detail: Invalid response from
   http://service.domain1.com/.well-known/acme-challenge/xWsuGIi0JmuEuDzS5qPkVX3oHuzY2kNl0YGoU6HltRg
   [35.186.238.101]: "<!doctype html><html lang=\"en\"><head><meta
   http-equiv=\"content-type\"
   content=\"text/html;charset=utf-8\"><meta name=\"viewport\" con"

   To fix these errors, please make sure that your domain name was
   entered correctly and the DNS A/AAAA record(s) for that domain
   contain(s) the right IP address.
apache ssl ssl-certificate apache-config acme
2个回答
1
投票

“要修复这些错误,请确保您的域名是 正确输入以及该域的 DNS A/AAAA 记录 包含正确的 IP 地址。”

我想说您还没有为您的域添加正确的 DNS 设置。它会给你一些要添加的 A 记录以及将它们指向哪个 IP。

您可以做的是获取 acme-dns-certbot 的副本

wget https://github.com/joohoi/acme-dns-certbot-joohoi/raw/master/acme-dns-auth.py

下载后,将脚本更改为可执行文件

chmod +x acme-dns-auth.py

更改脚本的第一行以使用python3

nano acme-dns-auth.py #!/usr/bin/env python3

最后,将脚本移动到 Certbot Let's Encrypt 目录中,以便 Certbot 可以加载它

sudo mv acme-dns-auth.py /etc/letsencrypt/

现在运行 Certbot 并强制其使用 DNS 验证颁发证书。这将运行 acme-dns-certbot 脚本并触发初始设置过程

sudo certbot certonly --manual --manual-auth-hook /etc/letsencrypt/acme-dns-auth.py --preferred-challenges dns --debug-challenges -d *.your-domain -d your-domain

您可以使用 --manual 参数来禁用 Certbot 的所有自动集成功能。在这种情况下,您只是颁发原始证书,而不是自动将其安装在服务上。

您可以通过 --manual-auth-hook 参数将 Certbot 配置为使用 acme-dns-certbot 挂钩。您运行 --preferred-challenges 参数,以便 Certbot 优先考虑 DNS 验证。

您还必须告诉 Certbot 在尝试验证证书之前暂停,您可以使用 --debug-challenges 参数来执行此操作。这是为了允许您设置 acme-dns-certbot 所需的 DNS CNAME 记录,这将在本步骤的后面部分介绍。如果没有 --debug-challenges 参数,Certbot 将不会暂停,因此您没有时间进行所需的 DNS 更改。

请记住使用 -d 参数替换您想要使用的每个域名。如果您想颁发通配符证书,请确保使用反斜杠 () 转义星号 (*)。

完成此操作后,您应该会看到类似的消息

... acme-dns-auth.py 的输出: 请将以下 CNAME 记录添加到您的主 DNS 区域: _acme-challenge.your-domain CNAME a15ce5b2-f170-4c91-97bf-09a5764a88f6.auth.acme-dns.io.

等待验证... ...

将 DNS 设置添加到您的域中,然后继续,您应该可以看到以下内容:

... 恭喜!您的证书和链已保存在: /etc/letsencrypt/live/your-domain/fullchain.pem 您的密钥文件已保存在: /etc/letsencrypt/live/your-domain/privkey.pem ...


0
投票

通过 API 在 Cpanel 中创建子域条目和 IP 地址重定向时遇到此问题。默认情况下,它会创建 AAAA IPv6 条目,我没有通过 API 调用更改这些条目。 ssl 身份验证正在访问 IPv6,但这导致了该问题。

一旦删除了 Cpanel 中该特定子域的 IPv6 条目,https 就可以完美运行。

© www.soinside.com 2019 - 2024. All rights reserved.