HTTP 虚拟主机

HTTP 虚拟主机

我正在设置我的 Apache 服务器,以便它有 2 个用于 NIC 的内部 IP 地址。一个将绑定到所有端口 80 流量,另一个将绑定到端口 443 流量。我这样做的原因是,当我浏览到未启用 SSL 的其中一个站点时,Apache 会尝试提供它在 VHosts 文件中找到的第一个证书,即使它不属于我请求的站点。这会导致 SSL 警告,因为它与域不匹配。

据我所知,解决此问题的最佳方法是设置 NIC,使其具有 2 个 IP 地址。以下是我目前所做的。

NIC 卡设置静态 IP:

10.0.0.2 和 10.0.0.4。
两者都位于相同的子网掩码 255.255.255.0 上。

我想设置我的 Apache,以便 10.0.0.2 处理端口 80 流量,并且针对该 IP 定义的所有站点的任何 HTTPS 请求都将失败。所有 HTTPS 流量都将通过 10.0.0.4。

我有以下内容httpd配置文件文件

Listen 10.0.0.2:80   Listen 10.0.0.4:443

NameVirtualHost 10.0.0.2:80   NameVirtualHost 10.0.0.4:443 

在我的 vhosts.conf 文件中,我的站点设置如下。

HTTP 虚拟主机

ServerName domainwhatever.com ...此处声明站点内容...

# HTTPS VIRTUAL HOSTS

<VirtualHost 10.0.0.4:443>
    DocumentRoot "C:\sites\site1.com"
    ServerName site1.com
    SSLEngine on
    SSLCertificateFile "c:\ssl\site1.com\CERTFILE.crt"
    SSLCertificateKeyFile "c:\ssl\site1.com\CERTFILE.key"
    SSLCACertificateFile "c:\ssl\site1.com\BUNDLEFILE.crt" </VirtualHost>

<VirtualHost 10.0.0.4:443>
    DocumentRoot "C:\sites\site2.com"
    ServerName site2.com
    SSLEngine on
    SSLCertificateFile "c:\ssl\site2.com\CERTFILE.crt"
    SSLCertificateKeyFile "c:\ssl\site2.com\CERTFILE.key"
    SSLCACertificateFile "c:\ssl\site2.com\BUNDLEFILE.crt" </VirtualHost>

我有相当多的 HTTP (10.0.0.2:80) VHost 条目,但在此示例中仅显示一个。目前我有两个 HTTPS 站点,需要使用 10.0.0.4 IP,但希望将来能够添加更多。

我无法浏览 https 网站。Chrome 无法连接。有人知道我哪里出错了吗?

相关内容