在非HTTP端口上将Traefik与TLS(acme插件)一起使用以进行HTTP流量

时间:2019-08-13 07:44:51

标签: docker traefik

与问题“ Traefik and Let's Encrypt on non default http port 80?”不同,我在默认的http端口上运行Traefik(> 1.7)。

我想为8448上一项服务的HTTP流量配置一个附加入口点。因此,我已将此入口点添加到我的traefik.toml中:

defaultEntryPoints = ["http", "https"]
logLevel = "DEBUG"

[entryPoints]
  [entryPoints.http]
  address = ":80"
    [entryPoints.http.redirect]
    entryPoint = "https"
  [entryPoints.https]
  address = ":443"
    [entryPoints.https.tls]
  [entryPoints.synapse]
  address = ":8448"
    [entryPoints.synapse.tls]

[api]

[acme]
email = "webmaster@example.com"
storage = "acme.json"
entryPoint = "https"
onHostRule = true
  [acme.httpChallenge]
  entryPoint = "http"

[docker]
endpoint = "unix:///var/run/docker.sock"
domain = "example.com"
watch = true
exposedByDefault = false

我的docker服务正在通过以下标签使用此端口:

labels:
  - traefik.enable=true
  - traefik.clients.frontend.rule=Host:matrix.example.com
  - traefik.clients.port=8008
  - traefik.clients.docker.network=proxy
  - traefik.federation.frontend.rule=Host:matrix.example.com
  - traefik.federation.port=8448
  - traefik.federation.docker.network=proxy
  - traefik.federation.frontend.entryPoints=synapse

不幸的是,即使我的Docker容器确实做到了,Traefik也不公开此端口。日志没有显示任何错误,但是显示入口点是由Traefik设置的。

有人知道我在做什么错吗?

该设置可以按预期用于其他入口点。

1 个答案:

答案 0 :(得分:0)

让我们加密需要TLS challenge的端口443,这是一个让我们加密的约束(或HTTP challenge的端口80)。

https://community.letsencrypt.org/t/support-for-ports-other-than-80-and-443/3419/72

或者,您也可以使用DNS Challenge