【发布时间】:2019-10-28 00:44:24
【问题描述】:
在 docker-compose YAML 文件中引用 Træfik v2 的自签名证书的文档非常有限。这是Let's Encrypt的方法:
version: "3.3"
services:
traefik:
image: "traefik:v2.0.0"
command:
- --entrypoints.web.address=:80
- --entrypoints.websecure.address=:443
- --providers.docker
- --api
- --certificatesresolvers.leresolver.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory
- --certificatesresolvers.leresolver.acme.email=your@email.com
- --certificatesresolvers.leresolver.acme.storage=/acme.json
- --certificatesresolvers.leresolver.acme.tlschallenge=true
但我尝试检查文档,但我没有看到任何方法可以在没有 toml 文件的情况下在 docker-compose 文件中引用自签名证书。
我试过这个:
version: "3.3"
services:
traefik:
image: "traefik:v2.0.0"
command:
- --entrypoints.web.address=:80
- --entrypoints.websecure.address=:443
- --providers.docker
- --api
- --providers.docker.tls.cert=/etc/certs/server.crt
- --providers.docker.tls.key=/etc/certs/server.key
但我收到以下错误:
获取docker客户端和服务器主机信息失败: 连接期间出错:获取 https://%2Fvar%2Frun%2Fdocker.sock/v1.24/version: http: 服务器给 对 HTTPS 客户端的 HTTP 响应” providerName=docker
以下是我使用的资源,它们不提供任何方式来设置自签名证书以在 docker-compose YAML 文件中为 Træfik v2 启用 HTTPS:
我确实在这个页面上看到了这个:https://docs.traefik.io/https/tls/#user-defined
tls:
certificates:
- certFile: /path/to/domain.cert
keyFile: /path/to/domain.key
但它是用于文件 YAML 配置文件,我需要将其转换为等效的 docker-compose YAML 文件,因为它高于他们为 Let's Encrypt 所做的工作。
【问题讨论】:
-
见this comment。它使用卷,但我建议使用秘密和配置。如果您需要更多帮助,请告诉我,我可以发布一个示例 docker-compose 文件。
标签: docker docker-compose ssl-certificate tls1.2 traefik