使用Traefik与多个域

时间:2018-02-14 16:30:38

标签: traefik

我尝试使用Let&#39>加密生成两个域和证书来设置dockerized版本的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自行签名。

有人可以指出我正确的方向设置两个域正常使用加密吗?

2 个答案:

答案 0 :(得分:2)

对不起,关于误导性信息。由于我复杂的环境,我以前的测试不正确,我对你之前的答案的答复是不正确的。

执行验证切换到dnsChallenge 是否生成并正确使用其他域的新证书。谢谢你指点我正确的方向。

答案 1 :(得分:0)

所以,通过日志显示:

select n'\€', u'\\\20ac', n'\\\20ac' from dual;

N'\€' U'\\\20AC' N'\\\20AC'
----- ---------- ----------
\€    \€         \\\20ac

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"

由于安全问题,导致我在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)应该工作(尚未测试)