我在 RHEL 7 上安装了 Apache 2.4.6,无需 SSL 即可正常工作。由于我是第一次这样做,所以我有几个问题:
这这里的医生说我的 SSL 配置(我相信httpd.conf
)必须包含以下条目:
LoadModule ssl_module modules/mod_ssl.so
Listen 443
<VirtualHost *:443>
ServerName www.example.com
SSLEngine on
SSLCertificateFile "/path/to/www.example.com.cert"
SSLCertificateKeyFile "/path/to/www.example.com.key"
</VirtualHost>
我已经搜索了我的httpd.conf
线路<VirtualHost>
但LoadModule
找不到它。我假设他们可能已经注释掉了,我需要取消注释并进行更改,但这两行都不存在。
1)我可以将以上两个条目复制并粘贴到文件末尾并进行配置,还是我没有看到上面注释掉的内容是异常的事情?
2)从哪里我可以知道我是否存在mod_ssl.so
于我的 Apache 中的某个地方?
3)现在,我的监听定义如下:我的服务器IP地址在Listen XX.XX.XXX.XX:80
哪里。XX.XX.XXX.XX
我应该将其注释掉并完全更改为XX.XX.XXX.XX:443
吗?文档只是说了Listen 443
,因此我很困惑。
谢谢
答案1
1> 你能只需附加到您的/etc/httpd/conf/httpd.conf
,但最好将此特定虚拟主机的配置放在 或 中其自己的配置文件中/etc/httpd/conf.d/example.com.ssl.conf
(/etc/httpd/sites-available
在 中具有相应的符号链接/etc/httpd/sites-enabled
),具体取决于系统的 Apache 配置范例的布局方式(前者是 RHEL ;后者是 Debian)。
2> 最简单的方法是简单的grep
(grep -R '[^#]*mod_ssl\.so' /etc/httpd/*
例如,查找对该模块的任何未注释掉的引用。
3> 从阿帕奇文档:
聆听指令
描述:服务器监听的IP地址和端口
句法:
Listen [IP-address:]portnumber [protocol]
Listen 指令指示 Apache httpd 仅监听特定的 IP 地址或端口;默认情况下,它响应所有 IP 接口上的请求。 Listen 现在是一个必需的指令。如果它不在配置文件中,服务器将无法启动。这是对 Apache httpd 早期版本的更改。
Listen 指令告诉服务器接受指定端口或地址和端口组合上的传入请求。如果仅指定端口号,服务器将侦听所有接口上的给定端口。如果给定了 IP 地址和端口,服务器将侦听给定的端口和接口。
如果您说Listen 443
,Apache 将关注所有接口上的所有 HTTP 请求;如果你说Listen 10.11.12.13:443
,它只会侦听绑定到 IP 地址 10.11.12.13 的网络接口上的 HTTPS 请求。