我在 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
这里有几个任务:
- 确保 SSL 模块已加载
- 监听另一个 SSL 端口 - 具体来说是 1234 端口
- 确保
default-ssl.conf
站点已启用(或您想要用于 HTTPS 站点的任何站点配置) - 使端口 443 虚拟主机也为第二个端口提供服务 - 而不是简单地复制该配置块
以下是如何操作(以 root 身份):
- 调用
a2enmod ssl
(是的,有这样的实用程序) - 在
Listen 1234
下面添加Listen 443
ports.conf
- 调用
a2ensite default-ssl
- 更改
<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