我正在使用Helm图表在Kubernetes上使用Traefik:https://github.com/helm/charts/tree/master/stable/traefik
Traefik版本为1.6.5。 这是values.yml文件的一部分:
ssl:
enabled: true
enforced: true
insecureSkipVerify: false
defaultCert: [...]
defaultKey: [...]
acme:
enabled: true
email: [...]
staging: false
logging: true
challengeType: http-01
deployment:
hostPort:
httpEnabled: true
httpsEnabled: true
dashboardEnabled: false
默认证书是使用“让我们加密”通配符域(* .example.com)手动颁发的证书。
现在,当我使用traefik ingress部署一个具有example.com子域(例如storage.example.com
)的部署时,将使用* .example.com的默认证书,而不是Let's Encrypt的新证书子域。这是Traefik的日志:
time="2018-08-06T08:28:45Z" level=debug msg="Try to challenge certificate for domain [storage.example.com] founded in Host rule"
time="2018-08-06T08:28:45Z" level=debug msg="No domain parsed in rule \"PathPrefix:/\""
....
time="2018-08-06T08:28:45Z" level=debug msg="Looking for provided certificate(s) to validate [\"storage.example.com\"]..."
time="2018-08-06T08:28:45Z" level=debug msg="No ACME certificate to generate for domains [\"storage.example.com\"]."
因此,当我向https://storage.example.com发出请求时:
time="2018-08-06T08:31:04Z" level=debug msg="No certificate provided dynamically can check the domain \"storage.example.com\", a per default certificate will be used."
虽然这适用于不是example.com子域的其他域。
那么在这种情况下,如何使Traefik自动从Let's Encrypt获得storage.example.com
的证书?
(不确定“让我们加密”对于通配符证书中已包含的子域的颁发证书是否有限制)
更新:让我们加密没有这种限制