【发布时间】:2020-06-05 15:58:34
【问题描述】:
我正在尝试让我的一个 Docker 容器使用自定义自签名 SSL。我已经按照我在互联网上浏览时收集到的一些说明进行操作,其他一切正常,但是我的容器一直使用 Traefik 默认证书,而不是我希望它使用的自定义证书。我怎样才能做到这一点?
说实话,我不太清楚 Docker 容器如何选择和使用 SSL 证书,而且我阅读的文档似乎也没有说清楚。这是我到目前为止所做的。
Docker 为 Traefik 编写 yml 文件
version: '3'
services:
traefik:
image: "traefik:v2.2"
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ~/docker-data/traefik/traefik.yml:/etc/traefik/traefik.yaml:ro
labels:
- "traefik.enable=true"
- "traefik.http.routers.api.rule=Host(`traefik.com`)"
- "traefik.http.routers.api.entrypoints=insecure"
- "traefik.http.routers.api.service=api@internal"
- "traefik.http.routers.api.middlewares=api-auth"
- "traefik.http.middlewares.api-auth.basicauth.users=admin:..."
container_name: traefik
networks:
default:
external:
name: "web"
我的 Traefik yml 文件
providers: # You can add more than one provider if needed
docker:
endpoint: "unix:///var/run/docker.sock"
network: "web" # Custom docker network
exposedByDefault: false # Only expose explicitly enabled containers
file:
filename: ~/docker-data/traefik/dynamic_conf.yml
watch: true
entryPoints:
insecure:
address: ":80"
secure:
address: ":443"
api:
dashboard: true
我的动态配置文件
# Dynamic configuration
tls:
certificates:
- certFile: "~/ssl/bwtest-cert.pem"
keyFile: "~/ssl/bwtest-key.pem"
我的 Docker 容器
---
version: '3'
services:
bwtest:
image: bitwardenrs/server
restart: always
container_name: bwtest
volumes:
- bw-test-data:/data
# - bw-test-ssl:/ssl
environment:
LOG_FILE: '/data/bw.log'
SHOW_PASSWORD_HINT: 'true'
labels:
- traefik.enable=true
- traefik.docker.network=web
- traefik.http.middlewares.redirect-https.redirectScheme.scheme=https
- traefik.http.middlewares.redirect-https.redirectScheme.permanent=true
- traefik.http.routers.bitwarden-ui-https.rule=Host(`bwtest.com`)
- traefik.http.routers.bitwarden-ui-https.entrypoints=secure
- traefik.http.routers.bitwarden-ui-https.tls=true
- traefik.http.routers.bitwarden-ui-https.service=bwtest
- traefik.http.routers.bitwarden-ui-http.rule=Host(`bwtest.com`)
- traefik.http.routers.bitwarden-ui-http.entrypoints=insecure
- traefik.http.routers.bitwarden-ui-http.middlewares=redirect-https
- traefik.http.routers.bitwarden-ui-http.service=bwtest
- traefik.http.services.bwtest.loadbalancer.server.port=80
- traefik.http.routers.mydomain.tls.domains[0].main=bwtest.com
- traefik.http.routers.mydomain.tls.domains[0].sans=www.bwtest.com
networks:
- web
networks:
web:
external: true
volumes:
bw-test-data:
bw-test-ssl:
【问题讨论】:
-
嗨,你最终解决了这个问题吗?如果是的话怎么办?
-
嗨,我最后做到了,谢谢。这个关于生成自签名证书的指南似乎是关键 - github.com/dani-garcia/vaultwarden/wiki/… Traefik 然后能够拿起我的证书。