好吧,我没有办法在逻辑上说这个...所以我会尽力描述它,但提前为做一份糟糕的工作而道歉。
我有6个左右的子域名,最近我的服务器上安装了SSL证书。如果使用https,我的所有入站流量似乎都是通过主域,而不是6个子域中的任何一个。
所以我举个例子:
domain.com - 主域名 sub1.domain.com sub2.domain.com sub3.domain.com sub4.domain.com sub5.domain.com sub6.domain.com
如果我使用https://subX.domain.com(X是上面的数字)。不使用subX中的文件。我通过在域的每个变体中放置几个种子文件来测试这个概念。所有独特和随机。因此,没有任何一个域可以拥有这些文件。
使用6个子中的任何一个我得到404 ..但是,如果我使用domain.com或subX.domain.com和仅在domain.com示例中的文件:domain.com有iiiindext25.html但没有做... ..
如果我https://subX.domain.com/iiiindext25.html我看到该文件,如果我http://subX.domain.com/iiiindext25.html我看不到该文件,我会看到我预期的404错误。
如果我http://subX.domain.com/分别放入任何一个文件,我会看到该文件。
总体而言,无论何时https://正在播放,所有流量都会被路由到主域。我不认为这是正确的行为。什么可能是错的任何建议或想法?
答案 0 :(得分:1)
现在的情况是,https正在监听根文件夹,我对Apache并不完全熟悉,但所有的Web服务器都是这么认为的。您可以尝试检查/etc/httpd/conf.d/ssl.conf。默认情况下,您将看到哪个文件夹是对齐的。
现在您可以编辑虚拟主机并添加
<VirtualHost *:443>
ServerName subX.example.com
DocumentRoot /yoursite/www
SSLEngine on
SSLCertificateFile /etc/ssl/private/subX.example.com.pem
</VirtualHost>
但请记住,如果证书不是通配符,您将获得该网站的安全证书不受信任!
在更改虚拟主机后重新启动apache