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

配置nginx-proxy时acme-companion运行异常无法注册证书问题排查

故障排查与修复步骤

1. 优先修复容器时间同步异常

你日志中存在两个明确的时间相关错误:

  • ASN1编码报错error:0D0D90AD:asn1 encoding routines:ASN1_TIME_adj:error getting time
  • acme请求的时间戳全部显示为1970年1月1日(Unix初始时间)

acme协议对请求时间精度要求极高,时间偏差过大会直接导致API请求校验失败、域名解析缓存异常。修复方式:
在docker-compose.yml的acme-companion服务的volumes节点下新增两行挂载,同步宿主机时间:

- /etc/localtime:/etc/localtime:ro
- /etc/timezone:/etc/timezone:ro

2. 修复bridge网络DNS解析故障

错误码6确实对应无法解析域名,本次解析失败的域名是日志中明确给出的Let's Encrypt API地址acme-v02.api.letsencrypt.org。默认Docker bridge网络经常出现DNS配置继承异常,导致容器内部无法解析公网域名。

  • 先验证解析状态:执行命令docker exec -it nginx-proxy-acme nslookup acme-v02.api.letsencrypt.org,如果返回解析失败即可确认该问题。
  • 修复方式:在两个服务的配置下新增公共DNS配置,示例:
services:
  nginx-proxy:
    # 原有配置不变
    dns:
      - 8.8.8.8
      - 114.114.114.114
  acme-companion:
    # 原有配置不变
    dns:
      - 8.8.8.8
      - 114.114.114.114

3. 额外校验配置项

确认你需要签发证书的业务服务容器,已经配置了以下三个环境变量,acme-companion会自动识别这些变量触发证书签发逻辑:

  • VIRTUAL_HOST:对应你的站点域名
  • LETSENCRYPT_HOST:和VIRTUAL_HOST值保持一致
  • LETSENCRYPT_EMAIL:你的邮箱,用于接收证书过期提醒

所有配置修改完成后,执行docker-compose up -d --force-recreate重建容器即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 11:51:03