千家信息网

httpd-2.4实现虚拟主机、访问控制及https功能

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,准备工作:在Centos7中安装httpd,使用yum安装或自己编译安装,建议使用yum安装,快捷又方便。关闭防火墙及selinux。提供两个基于名称的虚拟主机www1, www2;有单独的错误日志和
千家信息网最后更新 2026年10月31日httpd-2.4实现虚拟主机、访问控制及https功能

准备工作:在Centos7中安装httpd,使用yum安装或自己编译安装,建议使用yum安装,快捷又方便。

关闭防火墙及selinux。


  1. 提供两个基于名称的虚拟主机www1, www2;有单独的错误日志和访问日志;

    先建立虚拟主机www1

    a.在httpd的辅助配置文件目录/etc/httpd/conf.d/中创建属于虚拟主机自己的配置文件

~]# vim /etc/httpd/conf.d/vhosts-www1.conf        DocumentRoot "/myweb/vhosts/www1"        ServerName www.link1.com        ErrorLog "/myweb/vhosts/www1/logs/error_log"        CustomLog "/myweb/vhosts/www1/logs/access_log" combined    AllowOverride None    Options None    Require all granted

b.创建好配置文件后,再创建文档根目录及日志目录

~]# mkdir /myweb/vhosts/www1/logs -pv

c.创建并向文档根目录下的index.html写点东西,并在本机的C:\Windows\System32\drivers\etc目录下的HOST文件中添加192.168.127.128 www.link1.com。

重新载入配置文件

systemctl reload httpd.service

然后用本地浏览器打开,结果如下:

查看访问日志/myweb/vhosts/www1/logs/access_log,内容如下:

192.168.127.1 - - [29/Aug/2017:15:40:00 +0800] "GET /sky/ HTTP/1.1" 200 1319 "-" "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0"

状态码为200,请求成功。


虚拟主机www2的建立过程与www1的没有差别,只不过把相关名称改了就行,最后用浏览器测试,结果如下:



2.访问控制

a.通过www1的/server-status提供状态信息,且仅允许link用户访问;

a-1.修改www1的配置文件如下:

        DocumentRoot "/myweb/vhosts/www1"        ServerName www.link1.com        ErrorLog "/myweb/vhosts/www1/logs/error_log"        CustomLog "/myweb/vhosts/www1/logs/access_log" combined    AllowOverride None    Options None    AuthType basic    AuthName "Please input user and password to login,only link has permission to access!!"     AuthUserFile /etc/httpd/users/.htpasswd     Require user link

a-2.使用htpasswd命令创建虚拟用户

~]# mkdir /etc/httpd/users~]# htpasswd -c -m /etc/httpd/users/.htpasswd link~]# htpasswd -m /etc/httpd/users/.htpasswd link1

a-3.重新载入配置文件,打开浏览器输入就会出现以下情况:

当输入link用户及密码后:



当输入link1用户及密码时:

因为只允许link用户登录:

至此,要求实现。


b.www2不允许192.168.127.0/24 网络中任意主机访问;

从之前查看访问日志中看到本主机的ip地址为192.168.127.1。

那我们就将www2的配置文件修改如下:

        DocumentRoot "/myweb/vhosts/www2"        ServerName www.link2.com        ErrorLog "/myweb/vhosts/www2/logs/error_log"        CustomLog "/myweb/vhosts/www2/logs/access_log" combined    AllowOverride None    Options None          Require all granted      Require not ip 192.168.127.0/24    

修改之前访问如下:

修改之后访问如下:

至此,所要求的功能实现。


3.为上面的www2虚拟主机提供https服务

创建私有CA,然后再为本服务器颁发自签证书。

a.创建私有CA

a-1.创建私有CA私钥文件

~]# (umask 077 ; openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096)

a-2.生成自签证书

~]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem  -out /etc/pki/CA/cacert.pem -days 3653

a-3.满足CA所必须的目录级文件和文本文件的布局

~]# touch /etc/pki/CA/index.txt~]# echo 01 > /etc/pki/CA/serial

b.为服务器提供证书

b-1.创建服务器的私钥文件

~]# mkdir /etc/httpd/conf/ssl~]# cd /etc/httpd/conf/sslssl]# (umask 077 ; openssl genrsa -out httpd.key 4096)

b-2.生成证书请求文件

ssl]# openssl req -new -key httpd.key -out httpd.csr -days 3653

b-3.由CA签发证书:在CA所在的服务器上完成

ssl]# openssl ca -in httpd.csr -out httpd.crt -days 365

至此证书颁发完成。


c.安装mod_ssl模块

yum -y install mod_ssl

修改ssl的配置文件的部分内容如下:

SSLCertificateFile /etc/httpd/conf/ssl/httpd.crt    AllowOverride None    Options None    Require all grantedDocumentRoot "/myweb/vhosts/ssl"ServerName www.link2.comSSLCertificateKeyFile /etc/httpd/conf/ssl/httpd.key

然后再创建/myweb/vhosts/ssl目录

~]# mkdir /myweb/vhosts/ssl~]# echo "welcome to https://www.link2.com" >> /myweb/vhosts/ssl/index.html

然后重启服务。

不加密的访问如下:

https访问如下:

因为该证书是我们自己颁发的,所以刚开始访问时会说证书不受信任或有风险,添加例外就行了。

文件 配置 主机 证书 服务 虚拟主机 日志 用户 目录 服务器 浏览器 至此 浏览 私有 输入 内容 名称 密码 文档 根目录 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 广东猪兼强互联网科技有限公司 华服互联网科技怎么样 互联网最新的科技有限公司 麻工互联网科技 互联网科技与金融科技 互联网科技公司官网 安徽鑫晟辉互联网科技 互联网 视角下的科技创新 上海卓越科技 互联网 中国互联网金融科技基金 青岛科技大学互联网大赛研究生 速维有品互联网信息科技(苏州)有限公司 伊宁互联网科技做什么的 山东子淼互联网科技有限公司 互联网公司高科技产品 江苏苏星互联网科技有限公司 互联网科技年终奖 从那以后互联网科技有限公司 互联网科技创业有什么好项目 六子台科技互联网展会 互联网科技卖菜 万易互联网科技 上海电发互联网科技有限公司 成都互联网科技公司工作好不好 广西互联网科技孵化中心 互联网时代的科技公司 杭州披云加互联网科技有限公司 中天科技中国工业互联网 信承诺互联网科技有限公司 小牛互联网科技有限公司地址
0