docker - Traefik docker(compose),标签中的多个主机。让我们提供不同的 ssl 证书
问题描述
我现在有一个满足我需要的开发设置。我只想提供多个自签名 ssl 证书。我在我的钥匙串(macOS)中添加了一个 ca,并使用该 ca 为每个测试域签署我自己的证书。我正在使用带有 traefik 的 docker-compose 作为代理管理器,并使用 alemp 堆栈进行 wordpress 开发。我现在可以为 {domain}.test 和 www.{domain}.test 生成通配符证书。但我有一些使用超过 1 个域的多站点。它正在同一个 lemp 堆栈上处理 http,但无法弄清楚如何在 traefik 我的配置上使用多个证书:
-- lemp 堆栈(不包括 php 和其他服务)
version: '3.7'
services:
nginx:
image: nginx:latest
container_name: ${APP_NAME}-nginx
volumes:
- "./nginx/:/etc/nginx/templates/"
- ./src:/var/www/html:rw,cached
environment:
- "NGINX_ENVSUBST_TEMPLATE_SUFFIX=.conf"
depends_on:
- app
networks:
- default
- traefik
labels:
- "traefik.enable=true"
- "traefik.http.routers.${APP_NAME}.rule=Host(`${DOMAIN}`) || Host(`www.${DOMAIN}`)${DOMAIN_ADDITIONAL} || Host(`${DOMAIN2}`) || Host(`www.${DOMAIN2}`)"
- "traefik.http.routers.${APP_NAME}.entrypoints=websecure"
- "traefik.http.services.${APP_NAME}.loadbalancer.server.port=80"
- "traefik.docker.network=traefik_proxy"
restart: always
-- 我的 traefik 代理
version: '3.7'
services:
reverse-proxy:
container_name: traefik
# The official v2.0 Traefik docker image
image: traefik:v2.4
# Enables the web UI and tells Traefik to listen to docker
command:
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- --entrypoints.websecure.address=:443
- --entrypoints.websecure.http.tls=true
- --entrypoints.web.http.redirections.entrypoint.to=websecure
- --entrypoints.web.http.redirections.entrypoint.scheme=https
- --providers.file.directory=/etc/traefik/dynamic
ports:
# The HTTP port
- "192.168.255.1:80:80"
- "192.168.255.1:443:443"
# The Web UI (enabled by --api.insecure=true)
- "192.168.255.1:8080:8080"
volumes:
# So that Traefik can listen to the Docker events
- /var/run/docker.sock:/var/run/docker.sock:ro
- /etc/localtime:/etc/localtime:ro
- ./traefik/dynamic/dynamic.yaml:/etc/traefik/dynamic/dyn.yaml
- ./traefik/certs:/etc/traefik/certs:ro
networks:
default:
name: traefik_proxy
external: false
解决方案
推荐阅读
- c# - VR凝视系统从零开始,指针不跟随移动“头部”
- docker - 从 D 挂载文件:Windows 操作系统用于将文件上传到 Zalenium docker 映像
- php - 通过 PHP 访问本地网络时出错
- node.js - Mongoose 查询以检查搜索元素数组中的特定值
- html - Flex Box 和媒体查询
- javascript - 将 Async/Await 函数转换为针对 IE 11 的普通 ES5
- hybrid-mobile-app - 检查混合应用程序时出现问题。找不到所需的选择器
- javascript - ReactJS 将方法绑定到类组件
- c# - .NET Core 3.0 RouteEndpoint - 如何返回 RedirectToActionResult?
- java - 如何实现客户端凭据流(2 腿 OAuth)以连接到 LinkedIn API?