You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Certbot时http-01验证挑战失败,提示Unauthorized错误如何解决?

解决Certbot http-01挑战失败(522错误)的方案

从错误信息里的522状态码和Cloudflare的IPv6地址2606:4700:3037::6815:57b4来看,问题核心是ACME验证节点通过Cloudflare访问你的源服务器时连接超时,以下是针对性的解决步骤:

1. 处理Cloudflare代理影响

如果你的域名正在使用Cloudflare代理(域名DNS记录旁显示橙色云朵图标):

  • 临时关闭代理:将Cloudflare的代理模式切换为「DNS only」(灰色云朵),重新运行你的Certbot命令。验证完成后可再次开启代理。
  • 保留代理的替代方案:改用dns-01挑战方式,无需依赖HTTP访问,直接通过DNS TXT记录验证域名所有权。操作步骤如下:
    1. 安装Cloudflare DNS插件:
      sudo apt install certbot python3-certbot-dns-cloudflare
      
    2. 在Cloudflare后台创建具备「Zone.DNS」权限的API令牌,将令牌写入配置文件/etc/cloudflare.ini:
      dns_cloudflare_api_token = 你的Cloudflare API令牌
      
    3. 限制配置文件权限,避免泄露:
      sudo chmod 600 /etc/cloudflare.ini
      
    4. 运行Certbot完成验证:
      certbot certonly --dns-cloudflare --dns-cloudflare-credentials /etc/cloudflare.ini -d registry.cuongncc.uk --agree-tos -m myemail@gmail.com --keep-until-expiring -v
      

2. 排查IPv6连通性问题

错误中ACME节点使用IPv6地址发起请求,若服务器IPv6配置异常会导致超时:

  • 检查域名解析:如果服务器未配置可用的IPv6,暂时删除域名的AAAA记录,仅保留指向服务器IPv4的A记录,再重新尝试验证。
  • 验证IPv6端口开放:确保AWS安全组和服务器防火墙(如ufw)都开放了IPv6的80端口,允许::/0地址段访问。

3. 确认AWS安全组配置

AWS服务器的安全组是网络访问的第一道防线,需检查:

  • 入站规则:允许0.0.0.0/0(IPv4)和::/0(IPv6)访问80端口。
  • 出站规则:确保服务器能正常发起对外请求(默认规则通常已开放,若有自定义规则需确认)。

4. 手动测试端口连通性

在运行Certbot前,先验证80端口的外部访问性:

  1. 在服务器上启动临时HTTP服务:
    python3 -m http.server 80
    
  2. 从外部设备或在线端口检测工具访问http://registry.cuongncc.uk,确认能正常加载页面。若无法访问,说明端口仍存在连通性障碍,需重新排查防火墙和安全组配置。

内容的提问来源于stack exchange,提问作者CuongNCC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 08:05:11