【问题标题】:Apache2, vhosts and SSLApache2、虚拟主机和 SSL
【发布时间】:2015-03-24 08:57:40
【问题描述】:

我的设置:
site1.com | 80 端口
site2.com | 80 端口
panel.site1.com |将端口 80 流量重写为 443

这一直有效,直到有人尝试 https://site[x].com 并且服务器将他们重定向到我的面板。我需要这个面板对大约 100 名将使用它的人开放,但我不希望错误的人偶然发现它。

我已经尝试添加:

<VirtualHost *:443>
    ServerAdmin me@email
    ServerName site1.com
    ServerAlias www.site1.com

    RewriteEngine On
    RewriteCond %{HTTPS} on
    RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>

到 site1.com 的虚拟主机,但它仍然返回控制面板。我相信这是因为在应用 Apache vhost 规则之前检查了证书,但我不太确定。是否有解决此问题的方法,或者仅仅是 Apache2+SSL 的限制?

【问题讨论】:

    标签: apache ssl apache2 vhosts


    【解决方案1】:

    Apache document states that.

    如果在集合中没有找到匹配的 ServerName 或 ServerAlias 包含最具体匹配 IP 地址的虚拟主机和 端口组合,然后是第一个列出的与之匹配的虚拟主机 将被使用。

    看起来您将panel.site1.com 的&lt;VirtualHost&gt; 部分保留在所有其他虚拟主机部分的顶部。因此,https://site[x].com 的请求将落入其中,因此该问题与 SSL 无关。

    更新:

    您可以尝试以下配置,它应该可以工作。

    <VirtualHost *:80>
        ServerName www.site1.com
        ServerAlias site1.com
        DocumentRoot /var/www/site1
    
        RewriteEngine on
        RewriteCond %{HTTPS} off
        RewriteCond %{HTTP_HOST} ^panel.site1.com
        RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L]
    </VirtualHost>
    
    <VirtualHost *:80>
        ServerName www.site2.com
        ServerAlias site2.com
        DocumentRoot /var/www/site2
    </VirtualHost>
    
    <VirtualHost *:443>
        ServerName panel.site1.com
        DocumentRoot /var/www/panel
        SSLEngine on
        SSLOptions +StrictRequire
        SSLCertificateFile /opt/apache1/conf/server.crt
        SSLCertificateKeyFile /opt/apache1/conf/server.key
    </VirtualHost>
    

    这是如何工作的

    1. 当请求是针对http://site1.com 时,first VirtualHost 部分将被选中。
    2. 当请求针对http://site2.com 时,将选择第二 VirtualHost 部分。
    3. 如果http://site[x].com 的请求到达,则将选择first VirtualHost 部分。
    4. 如果对http://panel.site1.com 的请求到达,该请求将被重定向到https://panel.site1.com 并且将选择第三个 VirtualHost 部分。

    【讨论】:

    • 我认为这是我的问题,直到我要求其他网站监听端口 443。我已更新问题以显示我的失败尝试。
    猜你喜欢
    • 1970-01-01
    • 2023-03-04
    • 2015-10-06
    • 2019-01-01
    • 2014-10-29
    • 2013-06-24
    • 2014-10-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多