【发布时间】:2021-03-29 08:13:55
【问题描述】:
我有一个在 AWS 中运行的 Kubernetes 集群(基于 kops)。流量通过 Istio 入口网关资源配置的 Elastic Load Balancer 进入。我真的很希望能够允许客户在我的应用程序中为他们的门户设置自定义 dns,但我不确定 ssl/https 的最佳实践方法是什么。
基本流程很明确:让客户进入他们的域、颁发证书、验证域、路由流量。不幸的是,我遇到了 ssl 终止问题。
我幼稚的方法是简单地配置新的 ACM 证书并将它们附加到我的 ELB,但每个 ELB 限制为 25 个证书,这意味着它永远不会大规模工作。我可以为每个客户配置一个新的 ELB,但这很快就会变得昂贵。每 25 位客户配置一个 ELB 将是一种我不感兴趣的杂耍行为。
我阅读了this writeup of how Etsy setup their system,他们创建了运行 Apache 并路由回应用服务器的代理服务器。我也读过使用 NginX 的类似设置。看起来这可能是最好的选择,但我很想听听其他选择——最好是使用托管 AWS 服务。
前进的最佳方式是什么?我一直坚持使用 istio 作为普通的 Kubernetes 入口,而 AWS 作为我的云提供商,但我对几乎所有廉价且可扩展的路线持开放态度。
编辑:自从我创建这个问题以来,我发现了这个相关问题:Multi-Tenant Application on AWS - Multiple SSL Certificate Installation Strategies。那里的答案很好,但我比他们更厌恶成本。
Edit2:看起来 AWS api-gateway --> Lambda --> 内部 API 请求是我不确定在其他地方提到的另一种可能性。在这种情况下,只要每月发出的请求少于 300 万次,就我所看到的而言,它会更便宜。
【问题讨论】:
-
这 25 个证书中的每一个都可以包含 250 个域名,但您无法修改证书,并且每次添加新域时都需要重新颁发另一个证书。
标签: amazon-web-services ssl kubernetes certificate istio