traefik - Traefik 和 WildCard 证书由第三方签发
问题描述
我已经设置并运行了 traefik,但遇到了 https 问题(通配符证书)。我能够获得从 80 到 443 的重定向,但什么都不会加载。我在日志中看不到太多信息,它们已设置为调试级别
检查证书的权限并将日志设置为在 crt 上调试 0644 和在密钥上调试 0600
Tarefik TOML
defaultEntryPoints = ["http", "https"]
[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.http.redirect]
entryPoint = "https"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]
[[entryPoints.https.tls.certificates]]
certFile = "/etc/traefik/certs/server.crt"
keyFile = "/etc/traefik/certs/server.key"
码头工人撰写
services:
reverse-proxy:
image: traefik # The official Traefik docker image
command: --api --docker # Enables the web UI and tells Traefik to listen to docker
ports:
- "80:80" # The HTTP port
- "8080:8080" # The Web UI (enabled by --api)
volumes:
- /var/run/docker.sock:/var/run/docker.sock # So that Traefik can listen to the Docker events
- /home/traefik/traefik.toml:/traefik.toml
- /home/traefik/certs:/etc/traefik/certs
networks:
- traefik-net
正在运行的示例 NGINX 服务器
nginx-docker:
image: nginx:latest
labels:
- "traefik.frontend.rule=Host:<hostname>.eogresources.com"
networks:
- traefik-net
解决方案
在 traefik 上公开 443 解决了我的问题。添加了额外的端口 docker-compose 文件,更改反映在下面。愚蠢的错误。还在撰写文件中添加了网络以实现更多自动化
services:
reverse-proxy:
image: traefik # The official Traefik docker image
command: --api --docker # Enables the web UI and tells Traefik to listen to docker
ports:
- "80:80" # The HTTP port
- "8080:8080" # The Web UI (enabled by --api)
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock # So that Traefik can listen to the Docker events
- /home/traefik/traefik.toml:/traefik.toml
- /home/traefik/certs:/etc/traefik/certs
networks:
- traefik-net
networks:
traefik-net:
driver: "overlay"
推荐阅读
- c# - 如何将字段传递给“有”关系中的子对象列表
- swiftui - SwiftUI - 带有自定义视图的 TabView 覆盖
- python - 如何获取已经以字节为单位的图像的大小和分辨率
- excel - 如何在 Excel 单元格中替换字符并删除 no
- python - 使用 dict 数据类型创建嵌套循环
- python - 我无法按计划将数据写入 csv
- uwp - 我无法获得正确的 StoreContext
- sql - 这个“Where”条件会加速 SQL 查询吗
- apache-spark - KubernetesPodOperator 未按预期发送参数
- kotlin - 如何在 IntelliJ 中不使用 gradle 来执行 Kotlin main