使用 letsencrypt 生成 SSL 证书失败并显示“300 - 多项选择”
Generating SSL certificate with letsencrypt fails with "300 - Multiple Choices"
我在获取 traefik
为具有 www.
supdomain 作为单独 SAN 的域生成 lets-encrypt
证书时遇到了一些问题。我有其他具有相同配置的容器在此环境中工作。
(调试)日志非常冗长,但我能够看到此消息
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
的消息非常明显,return 似乎是代码 300 结果。
但是为什么会这样呢? traefik 不应该捕获对 /.well-known
和 return 的请求以获取 letsencrypt 的正确授权密钥吗?
仅使用一个域 wwww.mydomain.de
生成证书。
我该如何解决这个问题?
提前致谢!
我找到了解决办法。根据这个 this blog entry 它与第一个域 mydomain.de
的 DNS 设置有关,它有一个 A
-Record 指向我的服务器和一个 AAAA
-Record (IPv6)指向导致 "Multiple choice" 响应的不同位置,这实际上是来自 certbot/letsencrypt 的响应,与 traefik
.
无关
从 DNS 证书生成中删除 AAAA
记录后,现在似乎可以工作了。
我在获取 traefik
为具有 www.
supdomain 作为单独 SAN 的域生成 lets-encrypt
证书时遇到了一些问题。我有其他具有相同配置的容器在此环境中工作。
(调试)日志非常冗长,但我能够看到此消息
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
的消息非常明显,return 似乎是代码 300 结果。
但是为什么会这样呢? traefik 不应该捕获对 /.well-known
和 return 的请求以获取 letsencrypt 的正确授权密钥吗?
仅使用一个域 wwww.mydomain.de
生成证书。
我该如何解决这个问题? 提前致谢!
我找到了解决办法。根据这个 this blog entry 它与第一个域 mydomain.de
的 DNS 设置有关,它有一个 A
-Record 指向我的服务器和一个 AAAA
-Record (IPv6)指向导致 "Multiple choice" 响应的不同位置,这实际上是来自 certbot/letsencrypt 的响应,与 traefik
.
从 DNS 证书生成中删除 AAAA
记录后,现在似乎可以工作了。