【发布时间】:2018-12-23 09:00:38
【问题描述】:
Traefik 可以通过 Let'sEncrypt 保护多少个域有上限吗?
(我知道 Let'sEncrypt 有速率限制;这不是它的目的。)
如果 Traefik 将所有域/主机名放在一个证书中,似乎上限为 100 - 请参阅:https://community.letsencrypt.org/t/maximum-number-of-sites-on-one-certificate/10634/3 - Traefik 是否以这种方式工作?
但是,如果 Traefik 为每个域/主机名生成一个新证书,那么我想没有上限。是这样吗?
如果设置了acme.onDemand = true,行为是否不同,
与是否设置了acme.onHostRule = true 相比?也许在一种情况下,Traefik 将所有域/主机名存储在同一个证书中,在另一种情况下,在不同的证书中?
(背景:我建立了一个 SaaS 和开始使用它的组织,提供他们自己的自定义域。我真的不认为下面是这种情况,但我仍然有点担心,也许我'我在与 Traefik 集成时意外添加了最大 100 个组织的限制。)
【问题讨论】:
-
你使用通配符吗?在这种情况下,一个证书应该能够支持任意数量的子域。但是,如果您想要非子域证书,我认为这基本上只是速率限制问题。不过,请务必对证书使用 kvs,在处理这么多证书时,仅使用 json 文件可能会成为问题。
-
最坏的情况,如果您达到硬限制,请将入口控制器/负载均衡器更改为可能需要更多时间的控制器! :)
-
@Jite 对于不提供自己的自定义域的客户/用户,我有自己的通配符证书。但是,那些使用自己的自定义域的人不使用通配符,而是使用确切的主机名,例如
forum.example.com(他们的域和他们的 DNS 服务器)。 ——感谢KVS的提示;我以前想知道如果 JSON 文件最终会变得相当慢,那么它在更大范围内的工作效果如何。不知道有人会使用 KVS(键值存储)来代替。 -
强烈建议在集群中运行时使用 Etcd 或 Consul,Consul 相当容易设置,尤其是使用 Kubernetes 或 Docker swarm。我建议您允许用户添加一个域并将其指向您的集群,然后设置您的 traefik ingress/lb/server 为该域生成通配符证书,以便他们拥有一个域,但可以使用通配符创建无限的子域. :)
-
@Jite 好的,感谢您提供的信息和想法。 1) 实际上,我正在积极尝试避免使用 etcd、consul 和 Kurbernetes 之类的东西,以保持技术堆栈简单。 2) 我认为人们不希望将通配符域指向我的服务器——这对他们没有用处。可能他们希望将任何通配符指向他们自己的服务器。像
forum.org-name.com这样的子域指向我的服务器就足够了:-)
标签: lets-encrypt traefik