首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在坞-撰写文件中引用traefik v2的自签名SSL证书?

如何在坞-撰写文件中引用traefik v2的自签名SSL证书?
EN

Stack Overflow用户
提问于 2019-10-28 00:44:24
回答 1查看 13.3K关注 0票数 11

在docker文件中引用Tr fik v2的自签名证书的文档非常有限。下面是如何为让我们加密做这件事

码头/码头工-07.yml#L11-L14

代码语言:javascript
复制
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文件中引用自签名证书的任何方法。

我试过这样做:

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

但我得到了以下错误:

未能检索码头客户端和服务器主机的信息:连接期间出错:获取https://%2Fvar%2Frun%2Fdocker.sock/v1.24/version:http: server给出了HTTPS客户端的providerName=docker响应

以下是我所使用的资源,这些资源没有提供任何方法来设置自签名证书,以便在docker-compose文件中为Tr fik v2启用HTTPS:

我确实在这个页面上看到了这个:https://docs.traefik.io/https/tls/#user-defined

代码语言:javascript
复制
tls:
  certificates:
    - certFile: /path/to/domain.cert
      keyFile: /path/to/domain.key

但是它是用于文件YAML配置文件,我需要将它转换为坞-组成YAML文件等效,因为它上面是如何做的,让我们加密。

EN

回答 1

Stack Overflow用户

发布于 2020-02-05 09:09:58

目前看来这是不可行的。有人在Tr fik社区论坛上发布了一个类似的问题。

如果Tr fik通过一个文件套接字而不是一个文件套接字监听Docker事件,那么作为标志传递的证书(providers.docker.tls.cert和providers.docker.tls.key)是有用的,这不是您想要的。

将所有配置都配置在单个坞-组合文件中是很酷的,但不幸的是,自签名的相关配置必须存储在单独的文件中。

下面是记录的一个例子:

文件停靠器-Compose.yml

代码语言:javascript
复制
traefik:
  image: traefik:v2.1
  command:
    - --entrypoints.web.address=:80
    - --entrypoints.websecure.address=:443
    - --providers.docker=true
    - --providers.file.directory=/etc/traefik/dynamic_conf
    - --providers.file.watch=true
  ports:
    - 80:80
    - 443:443
  volumes:
    - /var/run/docker.sock:/var/run/docker.sock:ro
    - ./certs/:/certs/:ro
    - ./traefik.yml:/etc/traefik/dynamic_conf/conf.yml:ro

web:
  image: nginx:1.17.8-alpine
  labels:
    # http with redirection
    - traefik.http.middlewares.redirect-middleware.redirectscheme.scheme=https
    - traefik.http.routers.web-router.entrypoints=web
    - traefik.http.routers.web-router.rule=Host(`your-domain.net`)
    - traefik.http.routers.web-router.middlewares=redirect-middleware
    # https
    - traefik.http.routers.websecure-router.entrypoints=websecure
    - traefik.http.routers.websecure-router.tls=true
    - traefik.http.routers.websecure-router.rule=Host(`your-domain.net`)

文件traefik.yml

代码语言:javascript
复制
tls:
  certificates:
    - certFile: /certs/awx.afone.priv.crt
      keyFile: /certs/awx.afone.priv.key
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58584625

复制
相关文章

相似问题

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