Apache 忽略具有多个 SSL 域的 documentroot

标签 apache ssl httpd.conf sni

我在这里拉扯我的头发。

我让 Apache 与两个不同的域一起运行,这些域使用 SNI 运行 SSL。

配置如下。 如果我连接到 console.somedomain.com,它会将用户放在/var/www/html/而不是/var/www/html/somedomain/Admin/adminv4/

但是,如果我连接到 support1.somedomain.com ,它工作正常并且位于正确的目录中。

这里有什么地球是错的?目录有效。

<VirtualHost *:443>
DocumentRoot "/var/www/html/somedomain/Admin/adminv4/"
ServerName console.somedomain.com
SSLEngine On
SSLProtocol all -SSLv2
SSLCertificateFile /etc/httpd/ssl/console.somedomain.com/console.somedomain.com.crt
SSLCertificateKeyFile /etc/httpd/ssl/console.somedomain.com/console.somedomain.com.key
<Directory "/var/www/html/somedomain/Admin/adminv4/">
allow from all
Options +Indexes
</Directory>
</VirtualHost>
#
#
#NameVirtualHost support1.somedomain.com:443
<VirtualHost *:443>
DocumentRoot "/var/www/html/somedomain/"
ServerName support1.somedomain.com
SSLEngine on
SSLProtocol all -SSLv2
SSLCertificateFile /etc/httpd/ssl/support1_somedomain_com/support1.somedomain.com.crt
SSLCertificateKeyFile /etc/httpd/ssl/support1_somedomain_com/support1.somedomain.com.key
SSLCertificateChainFile /etc/httpd/ssl/support1_somedomain_com/latest.ca-bundle
<Directory "/var/www/html/somedomain/">
allow from all
Options +Indexes
</Directory>
</VirtualHost>

最佳答案

已修复。

执行此命令后结果:

apachectl -t -D DUMP_VHOSTS

*:443 是一个 NameVirtualHost 默认服务器 console.somedomain.com (/etc/httpd/conf.d/ssl.conf:56) 端口 443 namevhost console.somedomain.com (/etc/httpd/conf.d/ssl.conf:56) 端口 443 namevhost console.somedomain.com (/etc/httpd/conf.d/ssl.conf:56) 端口 443 namevhost console.somedomain.com (/etc/httpd/conf/httpd.conf:441) 端口 443 namevhost console.somedomain.com (/etc/httpd/conf/httpd.conf:441) 端口 443 namevhost support1.somedomain.com (/etc/httpd/conf/httpd.conf:455) 端口 443 namevhost support1.somedomain.com (/etc/httpd/conf/httpd.conf:455)

显示在 ssl.conf 中引用了控制台。

看了下,SSL.conf只有默认的ssl。

然后我记得我的实际系统主机名是 console.somedomain.com

所以, 我删除了默认值(反正我不想要 SSL 上的任何其他内容。只是我定义的虚拟主机。)

重新启动 apache,现在它可以工作了: apachectl -t -D DUMP_VHOSTS *:443 是一个 NameVirtualHost 默认服务器 support1.somedomain.com (/etc/httpd/conf/httpd.conf:444) 端口 443 namevhost support1.somedomain.com (/etc/httpd/conf/httpd.conf:444) 端口 443 namevhost support1.somedomain.com (/etc/httpd/conf/httpd.conf:444) 端口 443 namevhost console.somedomain.com (/etc/httpd/conf/httpd.conf:458) 端口 443 namevhost console.somedomain.com (/etc/httpd/conf/httpd.conf:458)

关于Apache 忽略具有多个 SSL 域的 documentroot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28049899/

相关文章:

python - 在 django+mod_wsgi+apache 上初始化模块

apache - Apache 负载均衡器(代理)服务器背后的真实 IP

ssl - 使用 force-ssl 时无法连接到在 virtualbox 上运行的 meteor 服务器

java - 使用 Google Dataflow 上的 KafkaIO 通过 SSL 连接到 Kafka

ssl - 使用 urllib2 连接 sslv3 页面

apache - 作为 Gradle 构建的一部分运行本地 Apache Web 服务器 + Tomcat

mysql - OTRS fatal error

linux - Ubuntu 上的 Apache2 配置文件路径。

php - PHP解释后设置MIME类型

Apache Conf - FilesMatch 只允许在当前文件夹中,而不是子文件夹中