提前感谢您的支持!我们已经研究了几天,做了很多研究,但还是没有找到解决方案。
我们的 Web 服务器在 centos6 上运行,其中安装了 apache(httpd-2.2.15-53)和 mod_ssl,使用 /etc/httpd/conf.d/vhosts/*.conf 目录中的 vhosts。
设置 SSL 证书并编辑 /etc/httpd/conf.d/ssl.conf 和 /etc/httpd/conf.d/vhosts/example.conf(见下文)后,现在我们通过以下方式访问网站:https://example.com我们得到了默认的 Apache 2 测试页面。如果我们删除 /etc/httpd/conf.d/welcome.conf 文件并重新启动 httpd,我们会看到 /var/www/html 目录的内容,它是 /etc/httpd/conf/httpd.conf 文件中的 DocumentRoot。
我们在设置中遗漏了什么导致https://example.com重定向到默认的 Apache 2 测试页面?
这是虚拟主机文件:
<VirtualHost *:80>
ServerAdmin [email protected]
DocumentRoot /home/www/example
ServerName example.com
ServerAlias example.com www.example.com
DirectoryIndex index.php
ErrorLog logs/example.com-error_log
CustomLog logs/example.com-access_log common
CustomLog logs/example.com-access_log_urchin.log urchin
SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI \.pdf$ no-gzip dont-vary
Header append Vary User-Agent env=!dont-vary
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/htm
SSLCertificateFile /usr/local/ssl/crt/public.crt
SSLCertificateKeyFile /usr/local/ssl/private/private.key
SSLCertificateChainFile /usr/local/ssl/crt/intermediate.crt
#DeflateFilterNote Input input_info
#DeflateFilterNote Output output_info
#DeflateFilterNote Ratio ratio_info
#LogFormat '"%r" %{output_info}n/%{input_info}n (%{ratio_info}n%%)' deflate
#CustomLog /var/log/httpd/example.deflate_log deflate
<Directory "/home/www/example/">
AllowOverRide All
RewriteEngine On
</Directory>
# grep -ir 443 /etc/httpd/conf*
/etc/httpd/conf.d/ssl.conf:监听 443 /etc/httpd/conf.d/ssl.conf: /etc/httpd/conf.d/ssl.conf:#服务器名称 www.example.com:443
ss -antp | grep 443
侦听 0 128 :::443 :::* 用户:(("httpd",7097,6),("httpd",7441,6),("httpd",7466,6),("httpd",7549,6),("httpd",7551,6),("httpd",7552,6),("httpd",7557,6),("httpd",7559,6),("httpd",7560,6),("httpd",7562,6),("htt pd",7564,6),("httpd",7614,6),("httpd",7616,6),("httpd",7619,6),("httpd",7621,6),("httpd",7622,6),("httpd",7625,6),("httpd",7667,6),("httpd",7669,6),("httpd",7670,6),("httpd",7671,6)) SYN-RECV 0 0 ::ac05:500:ffff:0:443 839::458f:6690:100:0:16413 ESTAB 0 122640 ::ffff:192.169.171.221:443 ::ffff:151.237.178.247:33969 用户:(("httpd",7559,24)) 时间等待 0 0 ::ffff:192.169.171.221:443 ::ffff:88.249.32.219:17220 时间等待 0 0 ::ffff:192.169.171.221:443 ::ffff:88.249.32.219:17979 时间等待 0 0 ::ffff:192.169.171.221:443 ::ffff:203.146.150.142:39904
apachectl -S
VirtualHost 配置:通配符 NameVirtualHosts 和默认服务器: 默认:443 example.com (/etc/httpd/conf.d/ssl.conf:74) *:80 是 NameVirtualHost 默认服务器 localhost (/etc/httpd/conf.d/vhosts/000default.conf:1) 端口 80 namevhost localhost (/etc/httpd/conf.d/vhosts/000default.conf:1) 端口 80 namevhost example1.com (/etc/httpd/conf.d/vhosts/example1.conf:1) 别名 example1.com 别名 www.example1.com 端口 80 namevhost example.com (/etc/httpd/conf.d/vhosts/mokum.conf:1) 别名 example.com 别名 www.example.com
谢谢你!
答案1
这是 Apache 在端口 80 上监听的配置文件。但是,HTTPS 是通过端口 443 传送的。很可能有一个恶意站点将端口 443 重新映射到默认目录(甚至可能是 Apache 自己的/etc/apache2/sites-available/default-ssl.conf
)。
答案2
您需要确定正在加载哪些 conf 文件(可能是 conf/*.conf 、vhost/*.conf .. 从 httpd.conf 跟踪它)。Apache 正在读取多个 conf 文件,其中一个已经有 :443 正在监听端口 443。您只需要在第二个块/conf 文件中为 :443 监听器进行 SSL 配置(这就是您获得默认页面的原因,您在当前默认 ssl conf 中没有配置任何内容)。