Traefik使用ZeroSSL替换LetsEncrypt生成SSL证书

2021-05-01 • 预计阅读时间 1 分钟

介绍

LetsEncrypt 的出现让大家能够更方便的使用SSL证书,解决了最大的证书成本的问题……特别是后期ACME的出现,自动续期。相当于无限免费了。不过毕竟不是免费,而且LetsEncrypt 的网站也是各种限制,导致有时不是那么容易申请到新的证书。另外只有这一个方案的话,万一那天悲剧了,总要有个后备。ZeroSSL现在可以说是一个不错的备选方案,目前没有请求限制,只是要求External Account Binding (EAB)。注册一下,在开发选项里面就能看到了。

配置

目前只有Traefik2.4支持使用ZeroSSL来动态获取证书。在traefik的静态配置文件中增加如下内容

certificatesResolvers:
  zerossl:
    acme:
      caServer: https://acme.zerossl.com/v2/DV90
      email: zerossl@example.com
      storage: acme.json
      dnsChallenge:
        provider: cloudflare
        resolvers:
          - "1.1.1.1:53"
          - "1.0.0.1:53"
      eab:
        kid: abc123xyz
        hmacEncoded: abc123xzy

然后给容器增加如下的标签

     - traefik.http.routers.yacht.tls.certresolver=zerossl

另外域名的CAA 需要设置为sectigo.com

之后重启容器如果一切顺利的话,就能够获得新的证书了。

devtraefikssl

wentao

写点代码,解决点问题。

修改容器用户UID和GID

升级SSH密钥使用ED25519