今天配置 htts 安全访问,其中重要步骤是配置 web服务器的ssl,我安装的是 apache2,ssl证书用的腾讯云的。按照官方步骤一步一步走下来,当配置到 LoadModule ssl_module modules/mod_ssl.so 这一模块的时候,发现并不是官方讲的那样。
原文:
Apache 2.x 证书部署
说明:
以下操作步骤以 CentOS 7 为例,根据操作系统的版本不同,详细操作步骤略有区别。
- 使用 “WinSCP” 工具,登录 Apache 服务器。
- 将已获取到的
1_root_bundle.crt
证书文件、2_www.domain.com.crt
证书文件以及3_www.domain.com.key
私钥文件拷贝到 Apache 服务器的/etc/httpd/ssl
目录下。说明:
若无
/etc/httpd/ssl
目录,可新建。 - 关闭 WinSCP 界面。
- 使用 “PuTTY” 工具,登录 Apache 服务器。
- 找到
LoadModule ssl_module modules/mod_ssl.so
(用于加载 SSL 模块)和Include conf.modules.d/*.conf
(用于加载配置 SSL 的配置目录)配置语句,并检验是否被注释。说明:
由于操作系统的版本不同,目录结构也不同,请根据实际操作系统版本进行查找。
LoadModule ssl_module modules/mod_ssl.so
和Include conf.modules.d/*.conf
配置语句可能配置在以下配置文件中:conf.modules.d
目录下的 00-ssl.conf 配置文件。- httpd.conf 配置文件。
- http-ssl.conf 配置文件。
若以上配置文件中均未找到
LoadModule ssl_module modules/mod_ssl.so
和Include conf.modules.d/*.conf
配置语句,请确认是否已经安装 mod_ssl.so 模块。若未安装 mod_ssl.so 模块,您可通过执行yum install mod_ssl
命令进行安装。- 是,请去掉首行的注释符号(
#
),并保存配置文件。 - 否,请执行下一步。
敲黑板:问题来了,我通过以上三种方法依然找不到我的关于 LoadModule ssl_module modules/mod_ssl.so 的配置,好气啊!
查呀查,看呀看,想呀想、
时间在流逝、
心痛啊、
终于,有了一点眉目了。下面赶紧把解决方案提上来:
# 进入到 /etc/apache2/
cd /etc/apache2/
ls
apache2.conf conf-enabled magic mods-enabled sites-available
conf-available envvars mods-available ports.conf sites-enabled
# 稍微简单说一下 *-enabled *-available 的区别
# *-enabled: 已经启用的配置
# *-available 可用的配置,相当于配置文件的备份。随意更改 *-enabled 文件,发现配置错了,或者拼不全配置名字了。不用担心,从 *-available 复制一份拿过去然后根据需求更改。
# 嗯,考虑的真周到
# 通过看名字,既然是 load model,那可能与 mods-enabled 文件夹相关了,进去看看去
cd mods-enabled
ls
access_compat.load authz_host.load dir.conf mpm_event.load socache_shmcb.load
alias.conf authz_user.load dir.load negotiation.conf ssl.conf
alias.load autoindex.conf env.load negotiation.load ssl.load
auth_basic.load autoindex.load filter.load python.conf status.conf
authn_core.load cgid.load mime.conf python.load status.load
authn_file.load deflate.conf mime.load setenvif.conf
authz_core.load deflate.load mpm_event.conf setenvif.load
# 看到了哇, ssl.conf & ssl.load,打开看看吧
vim ssl.load
# Depends: setenvif mime socache_shmcb
LoadModule ssl_module /usr/lib/apache2/modules/mod_ssl.so
# 原来是在这里,哈哈!开心。。。