在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
但是我尝试查看文档,没有找到在docker-compose文件中引用自签名证书的方法,而不需要toml文件。
我尝试了以下内容:
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: server gave HTTP response to HTTPS client" 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中所做的那样。