ube*_*ebu 8 ssl-certificate docker docker-compose tls1.2 traefik
在 docker-compose YAML 文件中引用 Træfik v2 自签名证书的文档非常有限。以下是让我们加密的方法:
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
Run Code Online (Sandbox Code Playgroud)
但是我试图检查文档,我没有看到任何方法可以在没有 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
Run Code Online (Sandbox Code Playgroud)
但我收到以下错误:
无法检索 docker 客户端和服务器主机的信息:连接时出错:获取 https://%2Fvar%2Frun%2Fdocker.sock/v1.24/version:http:服务器给 HTTPS 客户端提供 HTTP 响应” providerName=docker
以下是我使用的资源,它们没有提供任何方法来设置自签名证书以在 docker-compose YAML 文件中为 Træfik v2 启用 HTTPS:
我确实在此页面上看到了这一点:https : //docs.traefik.io/https/tls/#user-defined
tls:
certificates:
- certFile: /path/to/domain.cert
keyFile: /path/to/domain.key
Run Code Online (Sandbox Code Playgroud)
但它用于文件 YAML 配置文件,我需要将其转换为等效的 docker-compose YAML 文件,因为它高于他们为 Let's Encrypt 所做的工作。
目前看来这是行不通的。有人在Træfik 社区论坛上发布了一个非常相似的问题。
如果 Træfik 通过安全 TCP 端点而不是文件套接字侦听 Docker 事件,则您作为标志(providers.docker.tls.cert 和 providers.docker.tls.key)传递的证书很有用,这不是您想要的。
在单个 docker-compose 文件中配置所有内容会很酷,但不幸的是,自签名相关配置必须存储在单独的文件中。
以下是记录的示例:
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`)
Run Code Online (Sandbox Code Playgroud)
tls:
certificates:
- certFile: /certs/awx.afone.priv.crt
keyFile: /certs/awx.afone.priv.key
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5805 次 |
| 最近记录: |