使用letencrypt生成SSL证书失败,并显示“ 300-多项选择”

时间:2018-08-27 08:38:47

标签: docker lets-encrypt traefik

在使用traefik supdomain作为独立SAN的域获取lets-encrypt来生成www.证书时,我遇到了一些问题。在此环境中,我还有其他具有相同配置的容器。

(调试)日志非常详细,但我能够看到此消息

time="2018-08-27T07:41:43Z" level=debug msg="Try to challenge certificate for domain [mydomain.de www.mydomain.de] founded in Host rule"
time="2018-08-27T07:41:43Z" level=debug msg="Looking for provided certificate(s) to validate [\"mydomain.de\" \"www.mydomain.de\"]..."
time="2018-08-27T07:41:43Z" level=debug msg="Domains [\"mydomain.de\" \"www.mydomain.de\"] need ACME certificates generation for domains \"mydomain.de,www.mydomain.de\"."
time="2018-08-27T07:41:43Z" level=debug msg="Loading ACME certificates [mydomain.de www.mydomain.de]..."
time="2018-08-27T07:41:56Z" level=debug msg="Unable to split host and port: address www.mydomain.de: missing port in address. Fallback to request host."
time="2018-08-27T07:42:00Z" level=error msg="Unable to obtain ACME certificate for domains \"mydomain.de,www.mydomain.de\" detected thanks to rule \"Host:mydomain.de,www.mydomain.de\" : cannot obtain certificates: acme: Error -> One or more domains had a problem:\n[mydomain.de] acme: Error 403 - urn:ietf:paramsacme:error:unauthorized - Invalid response from http://mydomain.de/.well-known/acme-challenge/o74RJIDdodxG-hXpmX9en_55ZpptifsjYInrjY97Bic: \"<!DOCTYPE HTML PUBLIC \"-//IETF//DTD HTML 2.0//EN\">\n<html><head>\n<title>300 Multiple Choices</title>\n</head><body>\n<h1>Multiple C\"\n"
time="2018-08-27T07:43:44Z" level=debug msg="No certificate provided dynamically can check the domain \"www.mydomain.de\", a per default certificate will be used."

此容器使用的LABEL是:

LABEL traefik.enable="true" \
      traefik.backend="mydomain-backend" \
      traefik.docker.network="web-gateway" \
      traefik.frontend.rule="Host:mydomain.de,www.mydomain.de" \
      traefik.port="80"

到目前为止,使用Invalid response from http://mydomain.de/.well-known/acme-challenge/o74RJIDdodxG-hXpmX9en_55ZpptifsjYInrjY97Bic发出的消息非常明显,似乎返回了代码300的结果。 但是为什么会这样呢? traefik是否应该捕获对/.well-known的请求,然后将正确的身份验证密钥返回给letencrypt? 仅使用单个域wwww.mydomain.de生成证书即可。

我该如何解决? 预先感谢!

1 个答案:

答案 0 :(得分:1)

我找到了解决方案。根据此this blog entry,它与第一个域mydomain.de的DNS设置有关,该域具有指向我的服务器的A记录和AAAA记录(IPv6)指向引起“多选”响应的另一个位置,该位置实际上是certbot / letsencrypt的响应,与traefik不相关。

从DNS证书生成中删除AAAA-记录后,现在似乎可以正常工作了。