具有多个虚拟主机的 Apache SSL

具有多个虚拟主机的 Apache SSL

我有一个来自 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”作为默认虚拟主机,以便它总是先于其他任何东西运行。)

相关内容