gpt4 book ai didi

amazon-route53 - 如何在 Traefik 中使用 Route 53 作为 Lets Encrypt 的 DNS 挑战?

转载 作者:行者123 更新时间:2023-12-04 19:28:50 29 4
gpt4 key购买 nike

我的本地域是 home.turtlesystems.co.uk .我在该域内的本地 Docker Swarm 集群上使用 Traefik。

由于没有对集群的直接 Internet 访问,我无法对 Lets Encrypt 使用 HTTPS 质询,因此我尝试使用 Route53 作为 DNS 提供程序。

我在 Route53 中为我的主域设置了一个区域,它是 turtlesystems.co.uk 的子域我拥有的。

我的 traefik.toml文件看起来像:

debug = true

defaultEntryPoints = ["http", "https"]

[entryPoints]
[entryPoints.http]
address = ":80"
[entryPoints.http.redirect]
entryPoint = "https"
[entryPoints.https]
address = ":443"
[entryPoints.https.tls]


# Enable ACME (Let's Encrypt) automate SSL
[acme]
email = "xxxxxxxxxxxxxxxxxxxx"
storage = "/etc/traefik/acme.json"
dnsProvider = "route53"
entryPoint = "https"
onDemand = true
onHostRule = true
acmeLogging = true

[[acme.domains]]
main = "home.turtlesystems.co.uk"

# Allow access to the Web UI
[web]
address = ":8080"

# Configure how docker will be run
[docker]
endpoint = "unix://var/run/docker.sock"
domain = "traefik"
watch = true
exposedbydefault = false
swarmmode = true

我为 Portainer 创建了一个具有以下 Traefik 标签的服务:
traefik.port=9000
traefik.docker.network=traefik-net
traefik.frontend.rule=Host:turtle-host-03.home.turtlesystems.co.uk;PathStripPrefix:/portainer
traefik.backend=portainer
traefik.enable=true
traefik.backend.loadbalancer=wrr

因为我有 acmeLoggingtraefik.toml 中启用文件我希望获得有关正在发生或未发生的事情的更多信息,但我只得到以下 INFO 日志:
reverse_proxy.1.rqebssg613a8@turtle-host-03    | legolog: 2017/12/15 13:16:32 [INFO][home.turtlesystems.co.uk] AuthURL: https://acme-v01.api.letsencrypt.org/acme/authz/z52B_D2iHeITPqT_7K-Z-Y-ieir3VT4l1qGW6tShrd8
reverse_proxy.1.rqebssg613a8@turtle-host-03 | legolog: 2017/12/15 13:16:32 [INFO][turtle-host-03.home.turtlesystems.co.uk] AuthURL: https://acme-v01.api.letsencrypt.org/acme/authz/OxWRpDR3KZm4E0nGngVSRZgF3iE2nhQ3jlNaWtxbd08
reverse_proxy.1.rqebssg613a8@turtle-host-03 | legolog: 2017/12/15 13:16:32 [INFO][home.turtlesystems.co.uk] acme: Could not find solver for: tls-sni-01
reverse_proxy.1.rqebssg613a8@turtle-host-03 | legolog: 2017/12/15 13:16:32 [INFO][home.turtlesystems.co.uk] acme: Trying to solve DNS-01
reverse_proxy.1.rqebssg613a8@turtle-host-03 | time="2017-12-15T13:17:06Z" level=debug msg="Look for provided certificate to validate [turtle-host-03.home.turtlesystems.co.uk]..."
reverse_proxy.1.rqebssg613a8@turtle-host-03 | time="2017-12-15T13:17:06Z" level=debug msg="Look for provided certificate to validate [turtle-host-03.home.turtlesystems.co.uk]..."
reverse_proxy.1.rqebssg613a8@turtle-host-03 | time="2017-12-15T13:17:06Z" level=debug msg="No provided certificate found for domains [turtle-host-03.home.turtlesystems.co.uk], get ACME certificate."
reverse_proxy.1.rqebssg613a8@turtle-host-03 | time="2017-12-15T13:17:06Z" level=debug msg="Challenge GetCertificate turtle-host-03.home.turtlesystems.co.uk"
reverse_proxy.1.rqebssg613a8@turtle-host-03 | time="2017-12-15T13:17:06Z" level=debug msg="No provided certificate found for domains [turtle-host-03.home.turtlesystems.co.uk], get ACME certificate."
reverse_proxy.1.rqebssg613a8@turtle-host-03 | time="2017-12-15T13:17:06Z" level=debug msg="Challenge GetCertificate turtle-host-03.home.turtlesystems.co.uk"
reverse_proxy.1.rqebssg613a8@turtle-host-03 | time="2017-12-15T13:17:07Z" level=debug msg="Look for provided certificate to validate [turtle-host-03.home.turtlesystems.co.uk]..."
reverse_proxy.1.rqebssg613a8@turtle-host-03 | time="2017-12-15T13:17:07Z" level=debug msg="No provided certificate found for domains [turtle-host-03.home.turtlesystems.co.uk], get ACME certificate."
reverse_proxy.1.rqebssg613a8@turtle-host-03 | time="2017-12-15T13:17:07Z" level=debug msg="Challenge GetCertificate turtle-host-03.home.turtlesystems.co.uk"
reverse_proxy.1.rqebssg613a8@turtle-host-03 | legolog: 2017/12/15 13:17:10 [INFO][home.turtlesystems.co.uk] Checking DNS record propagation using [127.0.0.11:53]

可以看出它正在尝试使用 DNS 质询,但我没有获得证书。

当我第一次设置所有这些时,它完成了所有工作,实际上我写了一篇关于它的博客,但现在没有了。当我查看我的 AWS 账户时,我可以看到 AWS_ACCESS_KEY我已经为此目的创建了正在使用的区域,但似乎没有任何内容进入该区域。

我路过 AWS_ACCESS_KEY , AWS_SECRET_ACCESS_KEYAWS_REGION进入 Portainer 服务作为环境变量。

我可以打开更多日志记录吗?无论如何可以在 AWS 中查看 Route 53 的日志吗?

更新

在玩弄这个之后,我注意到 Traefik 正在尝试使用 127.0.0.11:53作为尝试检查 TXT 记录是否已创建的 DNS 服务器。

然后我添加了 --dns--dns-search到 Traefik 服务,但这对 Trafik 用于 DNS 的地址没有任何影响。我可以在 Traefik 中设置另一个选项来强制执行此操作吗?

最佳答案

  • 转到 AWS,创建 AIM 自定义策略
    将以下 JSON 粘贴为策略:
    {
    "Version": "2012-10-17",
    "Statement": [
    {
    "Sid": "",
    "Effect": "Allow",
    "Action": [
    "route53:ChangeResourceRecordSets",
    "route53:GetChange",
    "route53:GetChangeDetails",
    "route53:ListHostedZones"
    ],
    "Resource": [
    "*"
    ]
    },
    {
    "Sid": "",
    "Effect": "Allow",
    "Action": [
    "elasticloadbalancing:DescribeLoadBalancers",
    "elasticloadbalancing:SetLoadBalancerListenerSSLCertificate"
    ],
    "Resource": [
    "*"
    ]
    },
    {
    "Sid": "",
    "Effect": "Allow",
    "Action": [
    "iam:ListServerCertificates",
    "iam:GetServerCertificate",
    "iam:UploadServerCertificate"
    ],
    "Resource": [
    "*"
    ]
    }
    ]
    }

  • 将策略命名为“dnsChallenge”(或您喜欢的任何名称)
  • 创建新的 AIM 用户并附加上述策略

  • 复制新用户的 key ,因为您需要将它们设置为环境变量
  • 转到 AWS Route53 并查看托管区域。
    您将需要 2 个 A 记录 - yourdomain.com 和 *.yourdomain.com 都指向运行 traefik 的主机的静态 IP。

  • 复制要使用通配符的域的托管区域 ID。

    定义以下环境变量并确保它们在 traefik 启动时可用。
    export AWS_ACCESS_KEY_ID=*****************
    export AWS_SECRET_ACCESS_KEY=**********************************
    export AWS_HOSTED_ZONE_ID=*************

    编辑 traefik.toml
    [acme] # Automatically add Let's Encrypt Certificate.
    email = "youremail@gmail.com"
    storage= "acme.json" # Change to fully qualified and exposed path for docker
    entryPoint = "https"
    OnHostRule = false
    acmelogging = true

    # caServer = "https://acme-staging-v02.api.letsencrypt.org/directory"
    caServer = "https://acme-v02.api.letsencrypt.org/directory"

    [acme.dnsChallenge]
    provider = "route53"
    delayBeforeCheck = 0

    [[acme.domains]]
    main = "*.yourdomain.com"
    sans = ["yourdomain.com"]

    从那里开始从命令行运行它并观察消息是个好主意..

    关于amazon-route53 - 如何在 Traefik 中使用 Route 53 作为 Lets Encrypt 的 DNS 挑战?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47835576/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com