我的情况很奇怪,我设置了traefik来发布让我们为我的子域和主域加密通配符证书,但是,主域证书有时是有效的,让我们对证书进行加密,有时不是-Digital Ocean发行的有效“ kubernetes”证书(不知道其来源)。现在,我正在使用acme登台服务器以不超过速率限制,因此当前不信任证书,这很好,问题确实出在发行者身上。在https://api.gogl.me上,该证书与https://traefik.sys.gogl.me一样来自Fake LE,但在https://gogl.me上,则来自DigitalOcean。
我不明白为什么有时候证书来自一个发行人,有时又来自另一个发行人。 Traefik清楚地选择了主机规则,并重定向到正确的容器。我也在使用领事来存储证书,并且我还尝试了删除每项服务,甚至包括卷,但无济于事。
traefik.toml
[[acme.domains]]
main = "gogl.me"
[[acme.domains]]
main = "*.gogl.me"
[[acme.domains]]
main = "*.sys.gogl.me"
gogl.me的服务
web:
image: customnginximage
command: ["nginx", "-g", "daemon off;"]
depends_on:
- backend
networks:
- default
- traefik-public
ports:
- "80"
deploy:
replicas: 1
labels:
- traefik.enable=true
- traefik.backend=Web
- traefik.tags=${TRAEFIK_PUBLIC_TAG:-traefik-public}
- traefik.docker.network=traefik-public
- traefik.frontend.rule=Host:gogl.me
- traefik.port=80
# Traefik service that listens to HTTP
- traefik.redirectorservice.frontend.entryPoints=http
- traefik.redirectorservice.frontend.redirect.entryPoint=https
# Traefik service that listens to HTTPS
- traefik.webservice.frontend.entryPoints=https
答案 0 :(得分:0)
解决方案实际上非常简单,您不必定义两个acme域(gogl.me和* .gogl.me),而必须将通配符域定义为主域,而将实际主域定义为替代域,如此处所述:https://docs.traefik.io/configuration/acme/#wildcard-domains
因此配置应如下所示:
[[acme.domains]]
main = "*.gogl.me"
sans = ["gogl.me"]
[[acme.domains]]
main = "*.sys.gogl.me"