我在一台服务器上托管了 3 个网站,其中只有一个网站使用 SSL。我购买、配置并安装了 GoDaddy 证书,它在所有浏览器(Chrome、FF、Safari、IE)上都能正常工作,但 Opera 除外,它发出了我在问题中描述的警告。当我单击详细信息时,显示的主机名是服务器上运行的其他网站之一。
我在这里读过一些关于它的帖子,尤其是关于 SNI 的帖子,但我不太明白我该做什么,以及这个问题是否容易解决。我正在运行 Debian Lenny,Apache2 一切已更新。
答案1
您需要在安装 SSL 证书的网站/域上拥有专用 IP。因此,例如,如果您在服务器上托管 3 个域,则可以为两个没有 SSL 证书的虚拟主机共享一个 IP,但具有 SSL 证书的虚拟主机需要第二个 IP 专用于此域。如果将来您将 SSL 证书添加到其他两个域之一,那么您将需要另一个 IP 等。
一定要记住,对于 SSL,每个域名都需要一个专用 IP。
您应该要求您的托管服务提供商为您的服务器分配一个额外的 IP,更新您的 vhost 配置和启用 SSL 的域的 DNS 记录,这样就没问题了。
答案2
有办法解决 1:1 IP:主机限制。
每个 SSL 主机 1 个 IP 的经验法则的原因是,浏览器通过 SSL 与 Apache 等 Web 服务器建立的初始连接是加密的。由于这种加密,Apache 不可能知道您要访问哪个虚拟主机,因为 Host: 标头当前已加密。因此,Apache 将只从其虚拟主机配置中的第一个 SSL 主机提供证书。
如果您正在开展公共网站托管,虚拟主机配置中命名的第一个 SSL 证书不太可能在所有情况下都是正确的,但如果您在 Apache 实例上为有限数量的主机提供服务,您可以将所有这些主机添加到 UCC(多主机)证书。在这种情况下,证书将匹配所有主机,因此您不会收到警告。
我不确定这是否适合您的情况,但我在服务器上域数量非常有限的几个地方运行它,并且运行良好。