首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Traefik自签名证书

Traefik自签名证书
EN

Stack Overflow用户
提问于 2020-06-05 15:58:34
回答 1查看 3.3K关注 0票数 2

我正在尝试让我的Docker容器使用自定义的自签名SSL。我遵循了我在网上浏览时收集到的一些说明,其他的操作都很好,但是我的容器一直在使用Traefik默认证书,而不是我希望它使用的自定义证书。我怎样才能做到这一点?

老实说,我不太清楚Docker容器是如何挑选和使用SSL证书的,我读过的文档似乎也不清楚。以下是我迄今所做的工作。

Docker为Traefik编写yml文件

代码语言:javascript
复制
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文件

代码语言:javascript
复制
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

我的动态配置文件

代码语言:javascript
复制
# Dynamic configuration
tls:
  certificates:
    - certFile: "~/ssl/bwtest-cert.pem"
      keyFile: "~/ssl/bwtest-key.pem"

我的码头集装箱

代码语言:javascript
复制
---
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:
EN

回答 1

Stack Overflow用户

发布于 2020-06-24 10:48:02

我建议尝试将证书移动到默认存储区(https://docs.traefik.io/https/tls/#default-certificate):

代码语言:javascript
复制
tls:
  stores:
    default:
      defaultCertificate:
        certFile: path/to/cert.crt
        keyFile: path/to/cert.key
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62219465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档