lets-encrypt - Traefik 与 LetsEncrypt 通配符和 Dyn DNS
问题描述
我正在尝试使用 LetsEncrypt 的通配符证书设置 traefik。
在 Traefik 中使用 LetsEncrypt 的 dyn 提供程序时,我收到以下错误消息:
reverse-proxy_1 | time="2018-05-01T20:19:12Z" level=debug msg="Building ACME client..."
reverse-proxy_1 | time="2018-05-01T20:19:12Z" level=debug msg="https://acme-v02.api.letsencrypt.org/directory"
reverse-proxy_1 | time="2018-05-01T20:19:12Z" level=info msg=Register...
reverse-proxy_1 | time="2018-05-01T20:19:13Z" level=debug msg="Using DNS Challenge provider: dyn"
reverse-proxy_1 | time="2018-05-01T20:19:13Z" level=error msg="Unable to obtain ACME certificate for domains \"'*.lb.ops.example.net'\" : domains ['*.lb.ops.example.net'] generate certificate with no value: { [] [] [] []}"
当我查看生成的 acme.json 时,我看到:
{
"Account": {
"Email": "my.name@example.com",
"Registration": {
"body": {
"status": "valid",
"contact": [
"mailto:my.name@example.com"
]
},
"uri": "https://acme-v02.api.letsencrypt.org/acme/acct/34263018"
},
"PrivateKey": "MIIJKAIBAAKCAgEAsvImYVFqq [trimmed info] BPLMwF7E1F2GJg61qYJ4a0="
},
"Certificates": null,
"HTTPChallenges": null
}
我在 docker-compose.yml 中使用以下内容:
reverse-proxy:
command:
- --debug
- --logLevel=DEBUG
- --acme.dnschallenge=true
- --acme.dnschallenge.provider=dyn
- --acme.domains='*.lb.ops.example.net'
- --acme.email=my.name@example.com
- --acme.entryPoint=https
- --acme.storage=/etc/traefik/acme/acme.json
- --defaultentrypoints=http,https
- --entrypoints=Name:http Address::80 Redirect.EntryPoint:https
- --entrypoints=Name:https Address::443 TLS
- --web
depends_on:
- consul
environment:
DYN_CUSTOMER_NAME: mycompanyname
DYN_PASSWORD: a-reasonable-password
DYN_USER_NAME: aserviceaccountname
image: traefik:1.6
links:
- consul
ports:
- published: 80
target: 80
- published: 443
target: 443
- published: 8080
target: 8080
volumes:
- /tmp/acme:/etc/traefik/acme:rw
- /tmp/traefik:/var/log/traefik:rw
解决方案
推荐阅读
- ios - applicationProtectedDataDidBecomeAvailable 回调和 UIApplicationProtectedDataDidBecomeAvailable 通知之间的区别
- python - 使用 Python 在具有 JSON 列的表上测试 Postgresql 查询
- c# - 将 XML XElement 的本地名称传输到字符串
- javascript - 理解这个 JS 语法
- .net - 每 2 行交替背景颜色
- php - JQuery Ajax - 订单在 1 个字段上工作
- powershell - 通过 PowerShell 更改 DCOM 对象权限后要重新启动什么?
- r - 如何总结多列?
- css - 当父高度不固定时,将子元素限制为父高度
- javascript - 使用路径的 params.name 在数组中查找索引在更改路径后延迟