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

在Rancher平台通过Traefik为WordPress配置Let's Encrypt免费SSL

在Rancher中通过Traefik为WordPress配置Let's Encrypt SSL证书

我来帮你梳理下在Rancher环境里用Traefik给WordPress配置Let's Encrypt SSL的正确步骤——你之前的尝试方向是对的,大概率是某些细节没踩对,咱们一步步来排查和配置:

一、先搞定Traefik的基础挂载权限

你之前挂载了/mnt/docker/traefik/acme:/etc/letsencrypt/acme,这个路径的权限很容易出问题。Traefik容器需要能读写这个目录才能生成证书文件,先在宿主机执行这几条命令确保权限正确:

mkdir -p /mnt/docker/traefik/acme
chmod 755 /mnt/docker/traefik/acme
# 注意:不同Traefik版本的运行用户可能不同,若用root运行可跳过chown,否则换成容器对应的UID/GID
chown 1000:1000 /mnt/docker/traefik/acme

二、配置Traefik的ACME核心参数

不管你是用traefik.yml配置文件还是Rancher Stack的环境变量,这几个关键配置必须到位:

  • 启用HTTP-01挑战:Let's Encrypt需要通过80端口验证域名归属,所以要开放80端口作为入口
  • 有效邮箱:必须填能正常接收邮件的地址,Let's Encrypt会用它通知证书到期
  • 指定证书存储路径:对应你挂载的目录,要明确指向acme.json文件

给你一个traefik.yml的核心配置片段参考:

entryPoints:
  web:
    address: ":80"
    # 可选:自动把HTTP请求重定向到HTTPS
    http:
      redirections:
        entryPoint:
          to: websecure
          scheme: https
  websecure:
    address: ":443"

certificatesResolvers:
  letsencrypt:
    acme:
      email: your-real-email@example.com
      storage: /etc/letsencrypt/acme/acme.json
      httpChallenge:
        entryPoint: web  # 指定用80端口的web入口做挑战验证

三、给WordPress容器加Traefik路由标签

在Rancher的WordPress Stack里,找到容器的「Labels」配置项,添加以下标签让Traefik识别并自动申请证书:

  • traefik.enable=true:告诉Traefik要代理这个WordPress服务
  • traefik.http.routers.wordpress.rule=Host(your-domain.com):替换成你的实际域名,必须确保域名已经解析到集群的公网IP
  • traefik.http.routers.wordpress.tls.certresolver=letsencrypt:指定用咱们刚才配置的证书解析器
  • traefik.http.routers.wordpress.entrypoints=websecure:用HTTPS的443端口入口
  • traefik.http.services.wordpress.loadbalancer.server.port=80:指向WordPress容器内部的80端口

四、排查你之前失败的常见原因

  1. 域名解析问题:先确认你的域名能正常解析到Traefik所在集群的公网IP,可以用curl http://your-domain.com/.well-known/acme-challenge/test测试(测试后记得删除临时文件)
  2. 端口开放问题:集群的80和443端口必须在防火墙/安全组里开放,不然Let's Encrypt的挑战请求进不来
  3. acme.json权限问题:如果之前生成过这个文件,它的权限必须是600,Traefik无法写入权限不对的文件。可以先删除旧文件再重建:
rm /mnt/docker/traefik/acme/acme.json
touch /mnt/docker/traefik/acme/acme.json
chmod 600 /mnt/docker/traefik/acme/acme.json
  1. Traefik版本问题:确保用的是Traefik v2.x及以上版本,旧版本的ACME配置语法完全不同,很容易导致配置失效

五、验证配置是否生效

重启Traefik和WordPress服务后,查看Traefik的日志:

docker logs [你的Traefik容器名称]

如果看到类似Obtained certificate for domain your-domain.com的日志,说明证书申请成功。此时访问https://your-domain.com就能看到带SSL锁的WordPress站点了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:24:15