切换至Let's Encrypt生产服务器后Traefik出现TLS证书错误求助
问题原因及解决方法
核心原因
日志里报错的cloudmedia4.tubebg.com没有在你的Traefik配置中定义对应的路由规则。Traefik收到这个域名的请求时,找不到匹配的SSL证书,只能返回默认的自签名证书,浏览器验证该证书不合法,就会抛出tls: bad certificate错误。
你的现有配置只针对${DOMAIN}(对应example.com)和traefik.${DOMAIN}(对应traefik.example.com)配置了路由和证书解析器,完全没有涉及cloudmedia4.tubebg.com,所以这个域名无法获取有效的Let's Encrypt证书。
解决步骤
1. 添加对应域名的路由配置
如果cloudmedia4.tubebg.com指向的是现有的paperless服务,在webserver服务的labels中新增以下路由规则:
- "traefik.http.routers.paperless-cloudmedia.rule=Host(`cloudmedia4.tubebg.com`)" - "traefik.http.routers.paperless-cloudmedia.entrypoints=websecure" - "traefik.http.routers.paperless-cloudmedia.service=paperless" - "traefik.http.routers.paperless-cloudmedia.tls=true" - "traefik.http.routers.paperless-cloudmedia.tls.certresolver=letsencrypt"
如果这个域名对应其他服务,需要给目标服务添加类似的路由配置,确保指定certresolver=letsencrypt。
2. 验证DNS解析与端口可用性
- 确认
cloudmedia4.tubebg.com的DNS记录已正确指向你的服务器公网IP; - 确保服务器的80、443端口对外正常开放(Let's Encrypt的HTTP挑战需要80端口能被公网访问)。
3. 重启Traefik服务
执行以下命令重启Traefik,让新配置生效:
docker-compose restart traefik
重启后Traefik会自动为cloudmedia4.tubebg.com发起证书申请,成功后就能返回合法的Let's Encrypt证书。
额外排查点
- 检查
/mnt/documents/letsencrypt/acme.json文件的权限,确保权限为600,Traefik需要读写该文件存储证书; - 查看Traefik的DEBUG日志,确认是否有
cloudmedia4.tubebg.com相关的证书申请日志,若有错误根据日志信息调整配置。
内容的提问来源于stack exchange,提问作者Ben Keil
相关产品推荐
相关产品推荐

