如何拒绝https请求到我的服务器公共IP地址

时间:2017-10-09 19:26:55

标签: apache ssl virtual-hosts

我有一台运行Apache 2的服务器,它有6个虚拟主机。所有虚拟主机都通过SSL运行。但是,如果您向我的服务器的IP发出请求(例如:https://11.22.33.444),因为我的IP没有证书,您将按字母顺序重定向到最后一个虚拟主机,并且链接到该虚拟主机的任何应用都将加载{ {3}}

我的问题是我怎么能

  1. 将通过我服务器的公共IP地址加载的任何流量重定向到错误页面 OR
  2. 拒绝通过我服务器的公共IP地址加载任何流量并关闭连接

1 个答案:

答案 0 :(得分:1)

Apache在订单方面优先考虑VirtualHosts。通过将一个非常基本的服务器置于顶部,它将所有流量(不能满足其他虚拟主机)重定向到该网页。

#default server b/c first

<VirtualHost *:80>
        Redirect 302 / https://www.mainsite.com/error_page
</VirtualHost>

#main server

<VirtualHost *:443>
        ServerName www.mainsite.com
        DocumentRoot ...
        SSLEngine on
        SSLCertificateFile.....etc.
</VirtualHost>

<VirtualHost *:443>
        ServerName www.secondsite.com
        DocumentRoot ...
        SSLEngine on
        SSLCertificateFile.....etc.
</VirtualHost>

#force https servers

<VirtualHost *:80>
        ServerName www.mainsite.com
        Redirect 301 / https://www.mainsite.com/
</VirtualHost>

<VirtualHost *:80>
        ServerName portfolio.secondsite.com
        Redirect 301 / https://www.secondsite.com/
</VirtualHost>