好吧,我没有很好的方法来尝试从逻辑上讲这个..所以我会尽力描述它但提前为做得不好表示歉意。
我有 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 个 sub 中的任何一个我都会得到 404's.. 但是如果我使用 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://在起作用,所有流量都会被路由到主域。我不认为这是正确的行为。关于可能出错的任何建议或想法?
最佳答案
现在的情况,https 正在监听根文件夹,我对 Apache 不是很熟悉,但所有的网络服务器都这么认为。您可以尝试检查/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
关于https 流量似乎流向根域而不是子域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12813407/