我已经设置了一个 Debian LAMP 服务器,我在其中托管了多个网站。据我所知,我只能在其中一个网站上使用 SSL,如果我想在两个或更多网站上使用 SSL,我必须添加另一个 IP - 到目前为止一切顺利。
问题是每当我输入https://siteone.com
或https://sitetwo.com
它总是显示来自的内容:https://siteone.com
。我宁愿它显示一些错误消息或其他内容,但绝对不显示我的主要站点的内容(这是我希望 SSL 工作的地方)。
注意:我的 Debian Web 服务器使用 ispconfig 作为它的控制面板。
请参阅标题为在具有一个 IP 地址的 Apache 中使用多个 SSL 证书的页面。
确保您的虚拟主机设置正确,以便每个虚拟主机仅绑定到一个 IP 地址。基于 IP 的虚拟主机的Apache 文档说您的虚拟主机应类似于以下内容:
您的 apache 配置中列出的第一个虚拟主机是默认主机。在你的前两个之前添加一个假的,只是为了确保你真正匹配你的虚拟主机,而不是盲目地落入第一个。这是一篇关于 IBM 此类设置的更完整的文章:http ://www-01.ibm.com/support/docview.wss?uid=swg21045922
如果 Stephen 的建议对您不太适用,那么请确保您的 apache 配置文件中也有以下行:
另外,FRB 是对的。您可以在任意数量的虚拟机上安装 SSL。只需将 SSL 配置信息放入
<VirtualHost></VirtualHost>
代码块中即可。像这样的(另请注意,使用命名主机时无需绑定到特定 IP):
您实际上可以在同一个 IP 地址上创建多个 SSL 站点,而无需使用 SNI。(主要)问题是您必须使用相同的证书,该证书必须具有所有必需的域作为主题备用名称。(这些将使证书成本增加。)这意味着所有站点都针对同一组织。
Apache2 分两个阶段处理 SSL。第一阶段涉及检查 IP 地址的默认(第一个)虚拟主机块中的“SSLEngine on”语句,然后启动 SSL 连接。第二阶段涉及检查 ServerName/ServerAlias 指令,直到识别出正确的虚拟主机。
所以您实际上不需要在每个虚拟主机中复制 SSL* 指令,但它有助于吸引人们注意它是一个 SSL 站点这一事实。(否则他们必须注意端口号。)
第二个问题是每次 Apache 启动时都会在 error_log 中添加一个警告。