我尝试使用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自行签名。
有人可以指出我正确的方向设置两个域正常使用加密吗?
答案 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)应该工作(尚未测试)