我有几个站点想要迁移到 Amazon EC2。所有站点都使用 SSL,因此每个站点都需要一个专用 IP 地址。我的问题是:即使我将所有站点托管在同一个实例中,我是否需要为每个站点获取一个弹性 IP?
答案1
虽然有一些解决方案允许在单个 IP 地址上使用多个 SSL 身份证书,一般来说,如果您需要良好的浏览器兼容性,则每个证书都需要一个 IP。关于为什么会出现这种情况,请参见这个问题
标准基于名称的虚拟主机的问题基本上是,https 服务器在 TLS/SSL 握手期间做的第一件事是发送带有“通用名称”的 SSL 证书,该名称将自己标识为 www.mysecuresite.com - 但是名称虚拟主机依赖于“Hosts:”标头来决定在 HTTP 阶段稍后发送哪个站点。
因此(使用传统的...SSL v1,旧浏览器等,Windows XP)每个 IP 地址只能有一个 SSL 身份,因为服务器名称首先已经是 www.amazon.com,之后无法更改...
笔记 - 通常这些适用于相当小众的情况,例如内联网或 *.mydomain.com 通配符证书。
服务器名称指示是在单个 IP 上托管多个 SSL 证书的解决方案,但其支持性较差:
不是 XP 或旧版 Safari,也不是旧版 Android - 仅适用于 1 个 IP -http://wiki.apache.org/httpd/NameBasedSSLVHostsWithSNI“
通配符证书,不适用于这种特殊情况,因为服务器名称是域级别的,例如 badger.com 和 monkey.com,而不是 badger.server.com 和 monkey.server.com
答案2
您不能将多个弹性 IP 地址与单个普通 EC2 实例关联。
您可以在单个实例前面拥有多个 ELB,每个 ELB 都有自己的 IP 地址并代理到实例上的不同端口。