千家信息网

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

发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,准备工作:在Centos7中安装httpd,使用yum安装或自己编译安装,建议使用yum安装,快捷又方便。关闭防火墙及selinux。提供两个基于名称的虚拟主机www1, www2;有单独的错误日志和
千家信息网最后更新 2025年02月23日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安全错误 数据库的锁怎样保障安全 三级数据库和网络技术哪个好考 浙江舒跑网络技术有限公司 无锡购买计算机网络技术推广 工作表中查找数据库 软件开发客户不给尾款 服务器设置来电自起 昆明易核网络技术有限公司 武汉市软件开发中心的检验员 商汤服务器管理口 韶关通信软件开发批发价格 科技为网络安全护航 网络安全主题绘画A3 以下数据库角色中权限最高的是 用友ufo报表没有数据库 滴滴数据安全服务器 企业站数据库 济宁市通合科技软件开发 生产控制系统网络安全防护 我要看网络安全手抄报图片 我的世界手机版封神斗罗服务器 关于网络安全的艺术字 centos代理服务器 软件开发需求分析流程图 软件开发周边岗位 速达数据库安装时候功能选择 通信网络安全材料 输赢 云计算 传统服务器 南开金蝶软件开发怎么样 前端页面与数据库交互 美萍休闲洗浴管理系统服务器
0