您的位置:首页 > 理论基础 > 计算机网络

httpd-2.2及httpd-2.4版本实现对文件和用户的权限管理以及网页的https的功能

2017-09-01 09:06 661 查看
分别使用httpd-2.2和httpd-2.4实现
1.建立httpd服务,要求:
1) 提供两个基于名称的虚拟主机www1, www2;有单独的错误日志和访问日志;
2) 通过www1的/server-status提供状态信息,且仅允许link用户访问;
3) www2不允许192.168.1.0/24网络中任意主机访问;
2.为上面的第2个虚拟主机提供https服务;

首先在CentOS6.7中安装httpd-2.2版本的


在CentOS 7.2中安装httpd-2.4版本的




为了避免因为修改主配置文件,造成未知错误,可以将建立虚拟主机的配置文件,放在/etc/httpd/conf.d/ 目录下,这样,httpd服务在启动过程中,同样也会加载此目录的配置文件,而避免不必要的麻烦。

在虚拟主机配置文件前先创建以下目录:



在/etc/httpd/conf.d/目录下创建virtualhost.conf文件,配置以下内容


在各个虚拟主机的根目录下面创建index.html的主页文件



配置完成后,验证配置文件是否存在错误,显示正常。


重新启动httpd服务器,确保服务正常


修改/etc/hosts文件,添加以下内容:



利用curl命令,验证服务器虚拟主机是否配置正确


显示成功!让我们看看服务器端是否产生了日志



服务器端产生日志了,说明第一题完成了,下面我们在看第二题吧。

通过www1的/server-status提供状态信息,且仅允许link用户访问
server-status在主配置文件/etc/httpd/conf/httpd.conf九百多行


把这段代码复制到建立的virtualhost.conf文件里面

这个link用户,是用httpd程序里面自带的工具生成的,只允许登录web页面用的,是专属于这个服务的虚拟用户。这个工具就是htpasswd命令

我们先生成一个叫做link的用户,顺便在建立一个叫做qhd的用户:
link的账号密码均为link
qhd的账号密码均为qhd




创建好账号后,virtualhost.conf文件修改如下:



首先验证一下,www1的主页面是否正常




没有问题,那在验证一下/server-status页面


先利用qhd账号验证一下,由于认证不允许qhd账号访问,所以一直提示登录的这个页面,那在试一下link账号验证成功,显示出了status页面



下面进行第三小题:
这个问题是虚拟主机www2不允许192.168.1.0/24网络中任意主机访问,需要修改配置文件:


在虚拟主机的www2的配置参数中修改,修改完成之后,重启httpd服务

登录192.168.1.0主机,利用curl命令测试一下:






对虚拟主机www1.link.com,可以访问,但是对www2.link.com来说,http报文head信息,响应报文状态码403,禁止客户端访问了!
所以,到此第一题做完了,下面进行第二题的操作。
为虚拟主机www2.link.com提供https服务,那么httpd服务需要装载一个mod_ssl模块,默认未安装。下面进行安装操作:



安装完成后,可以看到此模块已经在/etc/httpd/conf.d目录下,生成一个ssl.conf的配置文件



下面的操作步骤是,搭建私有CA,并且服务器从CA申请证书:
创建必要文件和生成CA机构私钥:



生成自签证书



到此私有CA搭建基本完成,下面服务器开始申请证书:
web服务器端创建私钥文件,并生成申请证书



将web服务器生成的证书发送给CA服务器



CA签署证书:



将此证书发给另一个虚拟主机,并修改ssl的配置文件/etc/httpd/conf.d/ssl.conf


将修改以下几项:

验证修改的文件是否有语法错误,并重新加载配置:测试虚拟主机www2的https服务是否能正常访问显示无法验证证书,由于CA的证书还未导入到浏览器我们可以将CA证书发到测试的机器上,并用CA证书进行测试,如下

显示结果为虚拟主机www2的证书通过了验证,并得以显示。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  https httpd
相关文章推荐