我在 CentOS 6 上安装了 apache2.2,在配置块中启用了 SSL。它为主机名 first.defaultdomain.com(示例)提供 SSL 页面,该主机名映射到服务器的默认 IP。它通过以下方式访问https://first.defaultdomain.com。
对于同一个默认 IP,我在端口 80 上有多个 NameVirtualHost(假设还有两个主机名映射到这个 IP,second.defaultdomain.com 和 third.defaultdomain.com)。
如果有人错误输入了 second.defaultdomain.com 的 URL 的协议部分,例如 https_:_//second.defaultdomain.com,则该人将获得 first.defaultdomain.com 的 SSL 页面以及有关证书与主机名不匹配的警告(这是正确的)。
有没有办法区分对 https_ 的请求://first.defaultdomain.com 来自 https:_//second.defaultdomain.com (两个主机名都映射到同一个 IP)?
编辑:我不想为 second.defaultdomain.com 或 third.defaultdomain.com 提供 https,只想为 first.defaultdomain.com 提供 https。
问候,Gašper
答案1
如果您的证书仅对 first.defaultdomain.com 有效,则不行。您将无法将用户从重定向到http://second.defaultdomain.com如果证书与请求的域不匹配,浏览器甚至不会发送 GET 请求(因此不会收到重定向)。
您需要的是第二个和第三个 defaultdomain.com 的证书或使用通配符证书 - 但您也可以通过 TLS 提供这些域的内容 - 如果您拥有这些 FQDN 的有效证书和内容,为什么要重定向?