Apache在我的vhosts中加载mod_ssl但<IfModule mod_ssl.c>被忽略

Kin*_*ley 5 apache https mod-ssl httpd.conf vhosts

我正在努力保护我服务器的虚拟主机.我安装LE/Certbot很好,没有问题.我安装/升级了任何依赖项以使certbot工作,再次运行正常.

mod_ssl已安装并加载.我跑了phpinfo(),在那个LoadedModules部分,我明白了mod_ssl.

但是,在我的vhosts文件中,当我使用时

<IfModule mod_ssl.c>
    <VirtualHost *:443>
        ... 
    </VirtualHost>
</IfModule>
Run Code Online (Sandbox Code Playgroud)

<VirtualHost></VirtualHost>忽略该特定站点块(即我无法访问VirtualHost块中定义的站点),除非我删除/注释掉`wrapper.

httpd版本:

$ httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built:   Apr 12 2017 21:03:28
Run Code Online (Sandbox Code Playgroud)

我在网上找不到多少,所以我有点卡住了.如果我不明白为什么,我担心会有更多险恶的事情让我感到困惑.

任何帮助将非常感激!

干杯

Kin*_*ley 6

如果其他人遇到此问题,那是因为我在mod_ssl扩展名之前加载了vhosts配置文件.

我将Include vhost调用移动到调用之下Include conf.d/*.conf,httpd.conf然后重新启动Apache并且它工作正常.

希望有人帮助!

  • 真的花了 4 天的时间研究这个。我也有 `&lt;IfModule mod_ssl.c&gt;` 包装器,我最终通过切换 `http.conf` 文件末尾的 `IncludeOptional` 语句的顺序来解决。感谢您在这里发布您的解决方案。 (2认同)