我正在为 Rails 多租户应用程序做一些规划,并且想知道处理自定义域证书的最佳方法是什么。应用程序是相当沼泽标准; ELB、应用程序服务器和多租户数据库。
在我当前的用例中,每个租户都有一个自己独有的应用程序子域。这通常是通过通配符证书来处理的。
然而,当我展望未来并考虑如何支持自定义域(使用由客户端上传或自行生成的 SSL 证书并存储在 AWS Certificate Manager 中)时,我不确定如何最好地处理安装多个证书。假设名称服务器已配置,并且我已通过 AWS CM、letsencrypt 或 .
我可以看到一些选择,我希望得到一些关于如何最好地进行的指导:
ELB SSL 终止
每个域一个ELB,指向中央ELB
在这种情况下,我看到正在创建一个安装了自定义域证书的 ELB。该 ELB 充当代理并指向主 ELB,然后主 ELB 按正常方式进行负载平衡。我本人赞成这种方法,每个 ELB 每月额外支付 20 美元以上就可以了。
问题:你能链接多个 ELB 而不会丢失重要的标头数据(如主机吗?) 我以前没有尝试过。
每个域一个 ELB,注册单个实例
在这种情况下,每个自定义域都将安装在安装了自定义域证书的 ELB 上,并且每个服务器实例都将直接注册到该 ELB。我认为这并不理想,因为每次启动/关闭实例时,我都必须在每个 ELB 上自动(取消/)注册实例。
自我管理负载均衡器 SSL 终止
使用 HAProxy 或替代方案,根据需要加载和添加/删除 SSL 证书。然后,我需要向 HAProxy 注册(取消/)注册实例,并直接管理 HAProxy 服务器。我不喜欢这种方法,因为我试图减少需要直接管理的实例数量。
应用程序服务器 SSL 终止
这对我来说感觉非常丑陋,因为我需要在启动时在每个应用程序服务器上安装每个证书,然后在每个服务器发生更改时重新启动(?)。
我还缺少其他方法吗?我忽略了哪些注意事项?
编辑1:ALB支持25个证书
Chris 在下面提到(再次感谢!)AWS Application Load Balancer 将支持最多 25 个证书。这当然足以让我开始,但是我很好奇扩大规模的方法是什么。多个 ALB、HAProxy 还是...?