我需要保护位于同一个 EC2 实例上的两个不同域。
原因:1是销售网站,另一个是webapp,都需要访问同一个MySQL数据库。
编辑
销售网站是指用户查看我的定价计划等并注册的网站。Webapp 是他们在注册后可以访问的 SaaS Web 应用程序。
编辑结束
问题:webapp 域需要使用已购买的通配符 SSL 证书。
销售网站需要使用已经购买的标准 SSL 证书。
有人告诉我,一个 EC2 实例只能有 1 个弹性 IP 地址。
并且我不能在 1 个 IP 地址上拥有超过 1 个 SSL 证书。
我找到了这篇文章http://www.invokemedia.com/setting-up-multiple-ssl-domains-on-amazon-ec2-one-ipport/使用 UCC 证书来解决此问题。
但我不确定
- a) 这样做是可行的,而且我不希望不必要地花钱并最终将其浪费掉。
- b) 它将同时与通配符证书和标准证书一起工作。
- c) 使用 UCC 会意外破坏用户的 SSL 访问目的。
- d) 如何安装和使用它。
- e) 既然我从 GoDaddy 获得了两个 SSL 证书,那么如何获取 UCC。
我可以预见的另一种可能的解决方案是,我将 Web 应用程序托管在 1 个 EC2 实例上,将销售网站托管在另一个 EC2 实例上,这当然会使我的每月托管成本翻倍。
然后问题就出现了,我的编程假设两个应用程序需要在同一台服务器上访问同一个 MySQL 数据库。
对我来说最好的解决方法是什么——按重要性降序排列,安全性、可靠性、努力程度、成本?
我学到的东西
- 1 个 SSL 证书对应 1 个 IP:端口不是 1 个 SSL 证书对应 1 个 IP
- 有一种叫做 UCC SSL 证书的东西,不太清楚它是什么意思,除了它允许你同时使用 1 个 IP:PORT 为多个域名提供 SSL
- 有一种叫做 ELB Elastic Load Balancer 的东西可以让你克服在 1 个 EC2 实例上拥有 IP 的问题
我学到的东西结束了
答案1
每个 IP 可以拥有多个 SSL 证书,但每个 IP:端口组合不能拥有多个 SSL 证书。如果您愿意尝试在非标准端口(443 以外的任何端口)上运行其中一个 SSL 证书,那么您可以使用单个 IP 地址。
您可以轻松地在不同的端口上提供不同的 SSL 证书。
事实证明,这可以通过 Elastic Load Balancer 轻松实现。您可以将多个 Elastic Load Balancer IP 上的端口 443 重定向到实例上的不同端口。
有人很好心地写了一个不错的教程,并附有图表:http://elwoodicious.com/2009/12/23/using-elb-to-serve-multiple-domains-over-ssl-on-ec2-for-giggles/
您所指的“UCC”证书是 SubjectAltName 字段中有许多名称的证书。由于您已经拥有通配符证书,您可能会发现它有局限性 - 您使用通配符覆盖了多少个不同的域名?基于 SAN 的证书的一个优点是它可以覆盖多个域,但您在请求证书时需要单独枚举每个域名,而不是允许浏览器匹配通配符证书。