更改默认的 apache 配置以在两个端口上提供 HTTPS 服务?

更改默认的 apache 配置以在两个端口上提供 HTTPS 服务?

我在 Devuan Beowulf (~= Debian Buster) 上运行 apache2,使用默认配置。在该配置中,我有:

sites-available/default-ssl.conf

<IfModule mod_ssl.c>
        <VirtualHost _default_:443>
        # etc etc.

sites-available/default-000.conf

<VirtualHost *:80>
        # etc etc.

以及sites-available/default-000.conf

Listen 80

<IfModule ssl_module>
        Listen 443
</IfModule>

<IfModule mod_gnutls.c>
        Listen 443
</IfModule>

我如何使 apache 在端口 80 上侦听 HTTP 流量并在端口 443 和 1234 上侦听 HTTPS 连接?

答案1

这里有几个任务:

  1. 确保 SSL 模块已加载
  2. 监听另一个 SSL 端口 - 具体来说是 1234 端口
  3. 确保default-ssl.conf站点已启用(或您想要用于 HTTPS 站点的任何站点配置)
  4. 使端口 443 虚拟主机也为第二个端口提供服务 - 而不是简单地复制该配置块

以下是如何操作(以 root 身份):

  1. 调用a2enmod ssl(是的,有这样的实用程序)
  2. Listen 1234下面添加Listen 443ports.conf
  3. 调用a2ensite default-ssl
  4. 更改<VirtualHost _default_:443>为。<VirtualHost _default_:443 _default_:1234>default-ssl.conf

但是,上述解决方案至少存在一个问题 - 不知何故,神奇的是,您可以通过端口 443 与服务器进行 HTTP 通信。

笔记: 插入NameVirtualHost行;如果这样做,您会收到警告:

AH00548: NameVirtualHost has no effect and will be removed in the next 
release /etc/apache2/ports.conf:6

相关内容