SSL 和非 SSL 域的 VirtualHost 匹配问题

SSL 和非 SSL 域的 VirtualHost 匹配问题

我设置了 5 个域名。它们<VirtualHost *:80>在非 SSL 下都有记录。每个域名在 ex 下都有自己的记录。

<VirtualHost 172.30.0.245:443>
 ServerName www.acme.com
 ServerAlias acme.com

,因为它们有不同的 IP 和 SSL 证书。这很好用。

我还有一个通用记录<VirtualHost *:80>,位于文件 001-vhosts.conf 中。它会捕获不属于我的域的流量。如果它与我的某些域不匹配,它会返回 410。这也可以正常工作。如果我指向http://test.com服务器的 IP,它会转到通用记录并返回 410。

问题是当我为 SSL 添加通用记录时<VirtualHost *:443>。如果我打开https://test.com它而不是通用记录匹配<VirtualHost 172.30.0.245:443>。我希望不属于我的域的流量返回 410,无论是在 http 还是 https 上。我使用 AWS,有这样的流量很常见。

我错过了什么?

我设置了 5 个域名。它们<VirtualHost *:80>在非 SSL 下都有记录。每个域名在 ex 下都有自己的记录。

<VirtualHost 172.30.0.245:443>
 ServerName www.acme.com
 ServerAlias acme.com

,因为它们有不同的 IP 和 SSL 证书。这很好用。

我还有一个通用记录<VirtualHost *:80>,位于文件 001-vhosts.conf 中。它会捕获不属于我的域的流量。如果它与我的某些域不匹配,它会返回 410。这也可以正常工作。如果我指向http://test.com服务器的 IP,它会转到通用记录并返回 410。

问题是当我为 SSL 添加通用记录时<VirtualHost *:443>。如果我打开https://test.com它而不是通用记录匹配<VirtualHost 172.30.0.245:443>。我希望不属于我的域的流量返回 410,无论是在 http 还是 https 上。我使用 AWS,有这样的流量很常见。

我错过了什么?

命令sudo apache2ctl -S返回:

VirtualHost configuration:
172.30.0.160:443       www.ssl-domain1.com (/etc/apache2/sites-enabled/ssl-domain1.conf:121)
172.30.0.139:443       www.ssl-domain2.com (/etc/apache2/sites-enabled/ssl-domain2.conf:12)
172.30.0.137:443       www.ssl-domain3.com (/etc/apache2/sites-enabled/ssl-domain3.conf:7)
172.30.0.245:443       www.ssl-domain4.com (/etc/apache2/sites-enabled/ssl-domain4.conf:39)
172.30.0.124:443       www.ssl-domain5.com (/etc/apache2/sites-enabled/ssl-domain5.conf:80)
*:443                  ip-172-30-0-73.eu-west-1.compute.internal (/etc/apache2/sites-enabled/001-vhosts.conf:17)
*:80                   is a NameVirtualHost
         default server ip-172-30-0-73.eu-west-1.compute.internal (/etc/apache2/sites-enabled/001-vhosts.conf:3)
         port 80 namevhost ip-172-30-0-73.eu-west-1.compute.internal (/etc/apache2/sites-enabled/001-vhosts.conf:3)
         port 80 namevhost acme1.com (/etc/apache2/sites-enabled/acme1.com.conf:4)
         port 80 namevhost acme2.com (/etc/apache2/sites-enabled/acme2.com.conf:3)
                 alias www.acme2.com
                 alias staging.acme2.com

相关内容