【发布时间】:2019-08-07 18:25:09
【问题描述】:
我正在尝试使用 Let's Encrypt SSL 设置我的 Traefik Docker:
这是我的traefik.toml
defaultEntryPoints = ["http", "https"]
[entryPoints]
[entryPoints.dashboard]
address = ":88"
[entryPoints.dashboard.auth]
[entryPoints.dashboard.auth.basic]
users = ["admin:19081987"]
[entryPoints.http]
address = ":80"
[entryPoints.http.redirect]
entryPoint = "https"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]
[api]
entrypoint="dashboard"
[acme]
email = "myemail@gmail.com"
storage = "acme.json"
entryPoint = "https"
onHostRule = false
[acme.httpChallenge]
entryPoint = "http"
[docker]
domain = "mysite.com"
watch = true
network = "web"
[[acme.domains]]
main = "mysite.com"
[[acme.domains]]
main = "*.mysite.com"
我的docker-compose 带有 WordPress 和管理员的文件
version: '3.7'
services:
wordpress:
depends_on:
- db
image: wordpress:latest
volumes:
- ./wordpress_files:/var/www/html
- ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
restart: always
networks:
- web
container_name: mysitewp
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: user
WORDPRESS_DB_PASSWORD: pass
WORDPRESS_DB_NAME: mysitedp
labels:
- "traefik.backend=mysitewp"
- "traefik.docker.network=web"
- "traefik.frontend.rule=Host:mysite.com"
- "traefik.enable=true"
- "traefik.port=80"
db:
image: mysql:5.7
volumes:
- ./db_data:/var/lib/mysql
restart: always
networks:
- web
container_name: mysitedb
environment:
MYSQL_ROOT_PASSWORD: pass
MYSQL_DATABASE: mysitedb
MYSQL_USER: user
MYSQL_PASSWORD: pass
adminer:
image: adminer
restart: always
networks:
- web
ports:
- 89:8080
labels:
- "traefik.backend=adminer"
- "traefik.docker.network=web"
- "hostname=adminer"
- "traefik.frontend.rule=Host:adminer.mysite.com"
- "traefik.enable=true"
- "traefik.port=89"
depends_on:
- db
networks:
web:
external: true
除了管理员(无法访问adminer.mysite.com)外,一切正常(我可以使用 https 访问我的网站)。我检查了 Traefik 日志
unable to generate a certificate for the domains
Traefik 似乎无法为通配符域 (*.mysite.com) 生成证书。任何带有 Traefik 和 Let's Encrypt 的配置通配符域?
【问题讨论】:
标签: docker wildcard lets-encrypt traefik