所以我一直在尝试弄清楚如何仅使用 1 个 IP 设置多个 SSL 站点。我看到的问题是,当您有多个使用 SSL 的虚拟主机时,第一个具有 SSL 的站点是用于其余站点的站点。
我想知道我是否能够设置所有 vhost 以使用不同的端口(444、445)进行 ssl 连接,然后将每个站点从 443 重定向到我为使用 ssl 定义的任何端口。
IE。
domain1.com:443 重定向至 domain1:444
domain2.com:443 重定向至 domain2:445
这是否允许 Apache 正确使用每个域的 SSL 证书?还是我完全错了。
答案1
即使没有 SNI,给定 IP 地址上也可以有多个 SSL 证书。只要您的 Web 服务器针对每个不同的域侦听不同的端口(例如 444、445 等),每个域都可以拥有自己的 SSL 证书,同时从同一 IP 地址提供服务。(在加密握手发生之前,证书由 IP 地址和端口号的组合唯一选择。)
美中不足的是:如果初始连接到默认 HTTPS 端口 (443),浏览器将在重定向 (到端口 444 或 445 或...) 之前遇到服务器证书错误。这会吓跑大多数试图访问您网站的普通用户。
解决此问题的一种方法是告诉您的用户通过常规 HTTP(即端口 80)浏览您的网站,您可能无论如何都会这样做。然后您只需从那里进行重写/重定向,即
domain1.com:80 -> domain1.com:444
domain2.com:80 -> domain2.com:445
...
答案2
每个 IP 地址只能使用 1 个证书。因此,您需要一个包含所有可能域名(或它们的通配符)的证书。
除非您告诉客户使用备用端口,否则您不能使用备用端口;而这通常不会有什么好结果。