在端口 443 上添加多个 VirtualHost 时发出警告 - “_default_ VirtualHost 在端口 443 上重叠,第一个优先”

Spa*_*rky 7 ubuntu virtualhost apache-2.2

我正在运行 Ubuntu 12.10 并且我有以下 4 个 VirtualHost 条目 /etc/apache2/apache2.conf

4级虚拟主机的条目是用于两个分开的点,test.example.com并且test2.example.com,为每一个条目HTTP,一个用于HTTPS。

<VirtualHost *:443>
   DocumentRoot /var/www/test
   ServerName test.example.com
   # Other settings goes here
</VirtualHost>


<VirtualHost *:80>
   DocumentRoot /var/www/test
   ServerName test.example.com
   # Other settings goes here
</VirtualHost>

<VirtualHost *:443>
   DocumentRoot /var/www/test2
   ServerName test2.example.com
   # Other settings goes here
</VirtualHost>


<VirtualHost *:80>
   DocumentRoot /var/www/test2
   ServerName test2.example.com
   # Other settings goes here
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

我的问题 当我保存并重新启动 apache 时,我收到此警告:-

* 重新启动 web 服务器 apache2
[Sun Feb 17 18:30:09 2013] [warn] _default_ VirtualHost 在端口 443 上重叠,第一个优先
 ...等待 [Sun Feb 17 18:30:10 2013] [warn] _default_ VirtualHost 在端口 443 上重叠,第一个优先

/var/www/test当我同时打开test.example.com和时,我得到了内容test2.example.com

知道问题是什么吗?

fak*_*ker 12

你需要添加NameVirtualHost *:443它才能工作。
NameVirtualHost *:80也必须在您的配置中,它可能是默认设置的,但我不使用 Ubuntu,所以我不确定在哪个文件中。

还有一句忠告:
在单个 IP 上运行多个 HTTPS 站点可能有其缺点,特别是旧客户端(IE8/Windows XP)将不支持 SNI。
这在您的情况下可能非常有意义(仅用于测试,正在使用 *.example.com 通配符证书等),但您应该意识到这一点。