码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2016-07-20 23:13:01      阅读:1062      评论:0      收藏:0      [点我收藏+]

标签:虚拟主机   httpd   权限控制   

         博客作业:分别使用httpd-2.2httpd-2.4实现

                   1、建立httpd服务,要求:

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

                   (2)通过www1.ipsecx.com/server-status提供状态信息,且仅允许tom用户访问;

                   (3)www2.ipsecx.com不允许172.16.254.180主机访问;

                           

                   2、为上面的第2个虚拟主机提供https服务;

 

 

第一种情况:在httpd-2.2情况下完成以上要求

操作环境:

服务器端:CentOS 6.7 ,本地光盘yum源,httpd-2.2版本,IP地址:172.16.30.100

CA服务器:CentOS 7.2 ,本地光盘yum源,httpd-2.2版本,IP地址:172.16.254.144

客户机: CentOS7.2 IP地址:172.16.254.180

真机:Windows 7 IP地址:172.16.250.169

 

  1. CentOS6.7 安装httpd-2.2程序

                                 技术分享

     

    安装完成后,确认httpd程序的版本信息

    技术分享

     

    查看httpd程序安装完成后,生成哪些文件


    技术分享

     

     

  2. 配置虚拟主机www1.ipsecx.com www2.ipsecx.com

     

    httpd的主配置文件 /etc/httpd/conf/httpd.conf

httpd的额外的配置文件/etc/httpd/conf.d/*.conf

 

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

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


技术分享

 

在虚拟主机配置文件中定义的目录,必须要事先存在哟!否则会报错


技术分享

 

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


技术分享

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


技术分享

这个时候,大家很容易看到第一条信息,其实那并不是错误,提示不能解析到服务器的FQDN,用localhost.localdomain代替主机名称,如果你不想让服务器在提示这种信息,可以在配置文件/etc/httpd/conf/httpd.conf中,按照以下方式修改,修改完成后,验证,正常。

技术分享

 

技术分享

 

启动httpd服务,确保服务正常启动

 

技术分享

 

验证:

要想域名生效,必须互联网能够解析这两个域名,很明显小编并没有去注册这两个域名,那如何验证部署是否成功呢?

可以在客户机的hosts文件里面,添加自定义的主机映射关系,本案例以CentOS7为客户端,进行演示:

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


技术分享

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


技术分享


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

 

技术分享

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

要想实现通过www1/server-status提供状态信息,且仅允许tom用户访问;那么这个/server-status在哪里呢?那好吧,咱们先看一下主配置文件/etc/httpd/conf/httpd.conf

 

通过搜索 server-status,找到这个关键位置


技术分享 

那咱们就把这段代码复制到建立的virtualhost.conf文件里面吧,但是那个tom用户从哪里蹦出来的呢?难道是登录服务器的系统用户tom账号吗?oh ,,,你错了。这个tom账号,是用httpd程序里面自带的工具生成的,只允许登录web页面用的,是专属于这个服务的虚拟用户。这个工具就是htpasswd命令

 

那我们先生成一个叫做tom的账号吧,顺便在建立一个叫做jerry的账号吧。

Tom的账号密码均为tom

Jerry的账号密码均为jerry

账号,密码以md5加密方式,存储到/etc/httpd/conf.d/.htpasswd这个隐藏文件,为什么要隐藏,主要是怕别人偷看啦。哈哈哈

 

htpasswd –c –m –b /etc/httpd/conf.d/.htpasswd tom tom

htpasswd –m –b /etc/httpd/conf.d/.htpasswd jerry jerry

 

技术分享

 

好了,账号tom有了,那么virtualhost.conf文件应该怎么修改呢?如果你不会,那就照着我的方法来吧。

 

技术分享

修改完配置文件,重启httpd进程,如何验证成功?那用我的电脑真机来验证一下吧,

 

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

 

技术分享

 

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

 

技术分享

 

很好,出现验证页面了,那么先利用jerry账号验证一下,由于认证不允许jerry账号访问,所以一直提示登录的这个页面,那在试一下tom账号。

 

哇,验证成功,显示出了status页面。

 

技术分享

 

太激动了,让小编我先擦擦汗,继续披荆斩棘,拿着大刀冲向第一大题的第三小题吧。

 

这个问题是虚拟主机www2.ipsecx.com不允许172.16.254.180主机访问,那还是继续修改配置文件;

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

 

技术分享

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

 

技术分享

 

对虚拟主机www1.ipsecx.com,可以访问,但是对www2.ipsecx.com来说,http报文head信息,响应报文状态码403,禁止客户端访问了!正常访问的状态码是200.

 

到此,第一题全部做完,现在演示第二题。

要想虚拟主机www2.ipsecx.com提供https服务,那么httpd服务需要装载一个mod_ssl模块,默认未安装。

 

服务器安装mod_ssl模块

 

技术分享

 

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


技术分享

 

打开配置文件/etc/httpd/conf.d/ssl.conf文件,在这个文件里面需要修改的配置项,仅有两项,如下图:

                    技术分享

技术分享

第一项:填写服务器从CA申请的证书文件路径,

第二项:填写服务器的私钥文件路径

 

下面,小编将演示一下如何搭建私有CA,并且服务器从CA申请证书的操作步骤。

 

  1. 搭建私有CA机构

    创建必要文件

    技术分享

     

    生成CA机构私钥

技术分享

         生成自签证书

 

技术分享      

到此私有CA搭建基本完成,下面服务器开始申请证书:

  1. web服务器端创建私钥文件,并生成申请证书


     技术分享

 

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

 

技术分享

 

CA服务器签发web网站证书


技术分享


查看证书:

 

技术分享

CA服务器签发的证书,发送给web服务器,放置在某特定目录

 

技术分享

 

箭头指示的是证书文件,画线的文件是私钥文件,这两个文件路径要记住,因为要修改到/etc/httpd/conf.d/ssl.conf的配置文件中

 

修改/etc/httpd/conf.d/ssl.conf配置文件

 

技术分享

        技术分享              

修改完成之后,重启httpd服务,查看服务器监听端口

 

技术分享

利用浏览器验证https服务是否开启


技术分享

 

点击继续浏览此网站

技术分享

 

哇,好开心。成功的解决的上述问题。

 

======================================================================================

======================================================================================


对于httpd-2.4 版本,创建虚拟主机,以及权限定义,如下:

 

技术分享

 

 

测试效果如下:

 

  1. 测试只允许tom账户登录,jerry账户无法登陆(创建账号密码的步骤,同上面)

     

    技术分享

    技术分享

 

  1. 测试,禁止172.16.254.180访问虚拟主机www2.ipsecx.com,其他主机可以访问。

     

    技术分享

    在这里可以看到http报文的响应状态码是403,禁止访问。

    在看一下其他IP地址的客户端的访问请求,如下图所示,访问一切正常!

     技术分享

    到此小编已经演示完,在httpd-2.2环境和httpd-2.4环境如何解决上述问题。

     

     

     

    由于作者水平有限,本文错漏缺点在所难免,希望读者批评指正。谢谢!

     

     

     


本文出自 “朝花夕拾” 博客,请务必保留此出处http://ipsecx.blog.51cto.com/1819030/1828174

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

标签:虚拟主机   httpd   权限控制   

原文地址:http://ipsecx.blog.51cto.com/1819030/1828174

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!