gpt4 book ai didi

docker - 如何在 docker-compose 文件中为 traefik v2 引用自签名 SSL 证书?

转载 作者:行者123 更新时间:2023-12-02 17:52:48 24 4
gpt4 key购买 nike

在 docker-compose YAML 文件中引用 Træfik v2 自签名证书的文档非常有限。以下是您可以为 Let's Encrypt 执行此操作的方法:
https://github.com/containous/blog-posts/blob/master/2019_09_10-101_docker/docker-compose-07.yml#L11-L14

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-compose 文件中引用自签名证书。
我试过这个:
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
但我收到以下错误:

Failed to retrieve information of the docker client and server host:error during connect: Gethttps://%2Fvar%2Frun%2Fdocker.sock/v1.24/version: http: server gaveHTTP response to HTTPS client" providerName=docker


以下是我使用的资源,它们没有提供任何方法来设置自签名证书以在 docker-compose YAML 文件中为 Træfik v2 启用 HTTPS:
  • https://docs.traefik.io/reference/static-configuration/cli/
  • https://docs.traefik.io/https/tls/#user-defined

  • 我确实在这个页面上看到了这个: 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 所做的工作。

    最佳答案

    目前看来这是行不通的。有人在 Træfik community forum 上发布了一个非常相似的问题.
    如果 Træfik 通过 secure TCP endpoint 监听 Docker 事件,则您作为标志传递的证书(providers.docker.tls.cert 和 providers.docker.tls.key)很有用而不是文件套接字,这不是您想要的。
    在单个 docker-compose 文件中配置所有内容会很酷,但不幸的是,自签名相关配置必须存储在单独的文件中。
    以下是记录的示例:
    文件 docker-compose.yml

    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
    tls:
    certificates:
    - certFile: /certs/awx.afone.priv.crt
    keyFile: /certs/awx.afone.priv.key

    关于docker - 如何在 docker-compose 文件中为 traefik v2 引用自签名 SSL 证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58584625/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com