我有一个基于https://github.com/silvio/docker-matrix的容器('矩阵')(虽然这可能并不重要)。
它在端口8448和3478(不是80或443)上运行服务。
没有运行traefik,只运行'矩阵'容器,在'矩阵的内部'容器,我可以运行LetsEncrypt的certbot,该请求告诉LetsEncrypt尝试通过端口443联系我并提供ssl证书,如下所示:
certbot certonly --standalone --test-cert --email admin@amazing.site --agree-tos -d m.amazing.site
面临挑战,接受挑战,证书保存在容器中的dir / etc / letsencrypt中。
好的,现在我想在运行Traefik时这样做。
我在Docker-compose文件中为Traefik传递了我的参数,如下所示:
labels:
- "traefik.acme=false"
- "traefik.enable=true"
- "traefik.backend=matrix"
- "traefik.frontend.rule=Host:m.amazing.site"
- "traefik.port=443"
restart: always
expose:
- 443
ports:
- "8448:8448"
- "3478:3478"
当我在容器中运行挑战时(与上面相同的命令)
certbot certonly --standalone --test-cert --email admin@amazing.site --agree-tos -d m.amazing.site
我在Traefik日志中获得以下内容
时间=" 2017-07-14T01:04:35Z" level = error msg ="获取证书时出错:找不到域b374a9118f855cacdb0096846a3dfa0c.f7c92b61d040f9ba250f14cc533ba4b8.acme.invalid的质询证书,重试453.949201ms" 时间=" 2017-07-14T01:04:35Z" level = error msg ="获取证书时出错:找不到域b374a9118f855cacdb0096846a3dfa0c.f7c92b61d040f9ba250f14cc533ba4b8.acme.invalid的质询证书,重试808.788592ms" 时间=" 2017-07-14T01:04:36Z" level = error msg ="获取证书时出错:找不到域b374a9118f855cacdb0096846a3dfa0c.f7c92b61d040f9ba250f14cc533ba4b8.acme.invalid的质询证书,在1.138006833s"中重试 时间=" 2017-07-14T01:04:37Z" level = error msg ="获取证书时出错:找不到域b374a9118f855cacdb0096846a3dfa0c.f7c92b61d040f9ba250f14cc533ba4b8.acme.invalid的质询证书,在2.436785791s"中重试 时间=" 2017-07-14T01:04:40Z" level = error msg ="获取证书时出错:找不到域b374a9118f855cacdb0096846a3dfa0c.f7c92b61d040f9ba250f14cc533ba4b8.acme.invalid的质询证书,在3.055167113s"中重试 时间=" 2017-07-14T01:04:43Z" level = error msg ="获取证书时出错:找不到域b374a9118f855cacdb0096846a3dfa0c.f7c92b61d040f9ba250f14cc533ba4b8.acme.invalid的质询证书,在4.856677044s"中重试 时间=" 2017-07-14T01:04:48Z" level = error msg ="获取证书时出错:找不到域b374a9118f855cacdb0096846a3dfa0c.f7c92b61d040f9ba250f14cc533ba4b8.acme.invalid的质询证书,在7.544878611s"中重试 时间=" 2017-07-14T01:04:55Z" level = error msg ="获取证书时出错:找不到域b374a9118f855cacdb0096846a3dfa0c.f7c92b61d040f9ba250f14cc533ba4b8.acme.invalid的质询证书,在6.313970727s"中重试 时间=" 2017-07-14T01:05:01Z" level = error msg ="获取证书时出错:无法找到域8b1e27af665c4676b47236f25c3ccc73.1313b1cc8ceaaa7467ba2e5845c08fde.acme.invalid" 时间=" 2017-07-14T01:05:01Z" level = debug msg =" ACME什么也没得到8b1e27af665c4676b47236f25c3ccc73.1313b1cc8ceaaa7467ba2e5845c08fde.acme.invalid" 2017/07/14 01:05:01 server.go:2753:http:来自66.133.109.36:55264的TLS握手错误:EOF
请注意这些是真实的日志。没有提到我想要验证的实际域名。
我做错了什么?
答案 0 :(得分:0)
您无法立即为特定主机禁用acme,因为acme安装了在所有规则之前执行的路由。
我想出了一种解决方法:
https://gist.github.com/micw/67faf5cd3d4a6f64568ca2bb9a051230
最好的问候, 迈克尔。