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

Docker Compose部署WordPress时Let's Encrypt证书申请失败求助

解决Let's Encrypt证书申请超时问题(AT&T网络环境)

核心排查与修复步骤

Let's Encrypt的HTTP-01认证要求公网能正常访问服务器的80端口,结合你使用AT&T网络的情况,按以下步骤排查:

1. 确认是否处于CGNAT环境

  • 执行命令查看服务器公网IP:
    curl ifconfig.me
    
    对比这个IP和你域名DNS解析的IP,如果不一致,说明你的服务器没有独立公网IP(AT&T默认给很多用户分配CGNAT地址),Let's Encrypt无法通过公网访问你的80端口完成认证。
    • 解决:联系AT&T申请静态公网IP,或者切换到DNS-01认证模式(不需要开放80/443,通过修改DNS TXT记录完成认证)。

2. 验证80端口的公网可达性

  • 用非服务器所在网络的设备(比如手机开流量)执行:
    telnet your-domain.com 80
    
    如果连接失败,说明AT&T的路由器可能默认屏蔽了端口转发,需要登录路由器后台手动配置80/443端口转发到服务器的内网IP。

3. 检查Certbot与Nginx的挂载配置

  • 确保Docker Compose中Certbot的webroot路径和Nginx的静态文件路径一致,比如:
    certbot:
      image: certbot/certbot
      volumes:
        - ./certbot/conf:/etc/letsencrypt
        - ./certbot/www:/var/www/certbot
      command: certonly --webroot -w /var/www/certbot --email your-email@example.com --agree-tos --no-eff-email -d your-domain.com
    
    同时Nginx配置里要包含对.well-known/acme-challenge/路径的转发,指向这个webroot目录。

4. 用测试环境验证认证流程

  • 改用Let's Encrypt测试环境(无严格速率限制)测试,修改Certbot命令加入--test-cert参数:
    certbot certonly --webroot -w /var/www/certbot --test-cert --email your-email@example.com --agree-tos --no-eff-email -d your-domain.com
    
    如果测试环境能成功申请证书,说明问题出在生产环境的速率限制或临时网络波动;如果还是失败,继续排查网络出站问题。

5. 检查服务器出站连接

  • 验证服务器能否访问Let's Encrypt的API:
    curl -v https://acme-v02.api.letsencrypt.org/directory
    
    如果连接超时,说明AT&T可能屏蔽了该域名,修改服务器DNS为8.8.8.8或1.1.1.1后重试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 03:15:15