![具有多个虚拟主机的 Apache SSL](https://linux22.com/image/1474999/%E5%85%B7%E6%9C%89%E5%A4%9A%E4%B8%AA%E8%99%9A%E6%8B%9F%E4%B8%BB%E6%9C%BA%E7%9A%84%20Apache%20SSL.png)
我有一个来自 DO 的 VPS,只有一个 IP 地址。我通过 Apache 虚拟主机管理多个域,现在,我必须设置一个支持 SSL 的虚拟主机。我创建了一个自签名 SSL 证书来测试虚拟主机。
当我连接时,我可以通过 https 看到 example1.com 的内容https://example1.com但是当我连接到时我也可以看到example1.com的内容https://example2.com尽管 example2.com 在服务器的配置文件中没有 ssl 配置。
example1.com配置:
<VirtualHost *:80>
basic example1.com http conf such as DocumentRoot, ServerName
</VirtualHost>
<VirtualHost *:443>
example1.com https conf
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP
SSLCertificateFile /path/to/example1.com-ssl-server.crt
SSLCertificateKeyFile /path/to/example1.com-ssl-server.key
</VirtualHost>
example2.com 配置:
<VirtualHost *:80>
basic example2.com http conf such as DocumentRoot, ServerName
</VirtualHost>
答案1
但是当我连接到时我也可以看到example1.com的内容https://example2.com尽管 example2.com 在服务器的配置文件中没有 ssl 配置。
这恰恰发生了因为example2.com 没有 SSL 配置。默认情况下,如果没有具有确切服务器名称的 VirtualHost,则 Apache将使用第一的虚拟主机针对同一端口。
(这就是为什么 Debian 使用“000-default.conf”作为默认虚拟主机,以便它总是先于其他任何东西运行。)