在多个域中使用 Traefik

Using Traefik with multiple domains

我正在尝试使用 Let's Encrypt 生成的两个域和证书设置 docker 化版本的 traefik。

我已将 traefik.toml 修改为如下所示:

[acme]
  email = "email@example.com"
  storage = "acme.json"
  entryPoint = "https"
  OnHostRule = true

[[acme.domains]]
   main = "domain1.com"
[[acme.domains]]
   main = "domain2.com"

并且在 docker-compose 中我添加了这些标签:

labels:
  - "traefik.frontend.rule=Host:test-1.domain2.com"
  - "traefik.enable=true"
  - "traefik.port=80"

当我尝试访问 domain1.com 上的容器并相应更改标签 (frontend.rule) 时,证书正常。

当我尝试访问 domain2.com 上的容器时 (test-1.domain2.com),证书是由 traefik 自签名的。

有人可以为我指明正确的方向,以正确设置与 Let's Encrypt 一起使用的两个域吗?

因此,查看日志显示:

traefik_1  | time="2018-02-15T13:15:35Z" level=debug msg="Look for provided certificate to validate [test-1.domain2.com]..."
traefik_1  | time="2018-02-15T13:15:35Z" level=debug msg="No provided certificate found for domains [test-1.domain2.com], get ACME certificate."
traefik_1  | time="2018-02-15T13:15:35Z" level=debug msg="Challenge GetCertificate test-1.domain2.com"
traefik_1  | time="2018-02-15T13:15:35Z" level=debug msg="ACME got nothing test-1.domain2.com"

traefik_1  | time="2018-02-15T13:14:58Z" level=debug msg="Loading ACME certificates [test-1.domain2.com]..."
traefik_1  | time="2018-02-15T13:14:59Z" level=error msg="map[test-1.domain2.com:[test-1.domain2.com] acme: Could not determine solvers]"
traefik_1  | time="2018-02-15T13:14:59Z" level=error msg="Error getting ACME certificates [test-1.domain2.com] : Cannot obtain certificates map[test-1.domain2.com:[test-1.domain2.com] acme: Could not determine solvers]+v"

这导致我 https://community.letsencrypt.org/t/2018-01-09-issue-with-tls-sni-01-and-shared-hosting-infrastructure/49996,您可以在其中阅读,由于安全问题,Let's Encrypt 中的 TLS-SNI-01 验证已被禁用。

您可以使用 DNS challange (https://docs.traefik.io/configuration/acme/#dnsprovider) 应该有效(尚未测试)

抱歉,误导性信息。由于我的环境复杂,我之前的测试不正确,我对你之前的回答不正确。

验证切换到dnsChallenge确实生成并正确使用其他域的新证书。感谢您为我指明正确的方向。