设为首页 收藏本站
查看: 1864|回复: 0

[经验分享] httpd-2.4版本实现对文件和用户的权限控制以及网页的https的功能

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-7-21 09:06:47 | 显示全部楼层 |阅读模式
    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

  • CentOS6.7 安装httpd-2.2程序
                                  wKiom1ePTi6ysMPIAAGhiWKO7WU034.jpg

    安装完成后,确认httpd程序的版本信息
    wKioL1ePTmKRof90AAKT4P-MyhI674.jpg

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

    wKioL1ePTs6RTvO0AAGTJy3r_IA903.jpg


  • 配置虚拟主机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文件,配置以下内容

wKiom1ePTv_TohvRAAGMDuOYDyw460.jpg

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

wKiom1ePT3nwKkVMAAHJFl2XdH8622.jpg

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

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

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

wKiom1ePUMPQEom-AABabY6vuKM319.jpg

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

wKioL1ePUPLTnIuBAATFfjL12_c261.jpg

验证:
要想域名生效,必须互联网能够解析这两个域名,很明显小编并没有去注册这两个域名,那如何验证部署是否成功呢?
可以在客户机的hosts文件里面,添加自定义的主机映射关系,本案例以CentOS7为客户端,进行演示:
修改/etc/hosts文件,添加以下内容:

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

wKioL1ePUU2QDTsLAACb6FJs7-A598.jpg

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

wKiom1ePUXOj5DK3AAJHf6uX67g740.jpg
哇奥,服务器端产生日志了,简直太棒了,说明第一题完成了,下面我们在看第二题吧。
要想实现通过www1的/server-status提供状态信息,且仅允许tom用户访问;那么这个/server-status在哪里呢?那好吧,咱们先看一下主配置文件/etc/httpd/conf/httpd.conf

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

wKiom1ePUaDz3-v7AAEnu66A_NM465.jpg
那咱们就把这段代码复制到建立的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

wKiom1ePUc-Qsl7UAAFpL-zC7rY565.jpg

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

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

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

wKiom1ePUiejSgp3AABWheVTYTs462.jpg

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

wKiom1ePUl_widC8AAE1htkMUig017.jpg

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

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

wKioL1ePUoXyL08TAAO2hF7RC08326.jpg

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

这个问题是虚拟主机www2.ipsecx.com不允许172.16.254.180主机访问,那还是继续修改配置文件;
仅在虚拟主机的www2的配置参数中修改,修改完成之后,重启httpd服务

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

wKiom1ePUvXiaQ9KAAKJiBJZBL8835.jpg

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

到此,第一题全部做完,现在演示第二题。
要想虚拟主机www2.ipsecx.com提供https服务,那么httpd服务需要装载一个mod_ssl模块,默认未安装。

服务器安装mod_ssl模块

wKioL1ePUxuTIOdLAAEcfusTpiw108.jpg

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

wKioL1ePU0nwuq7sAAD8qu1eeQU119.jpg

打开配置文件/etc/httpd/conf.d/ssl.conf文件,在这个文件里面需要修改的配置项,仅有两项,如下图:
                     wKiom1ePVBKzQ4QaAACRh-7XRMk778.jpg
wKiom1ePU3izD9cCAAJ5Orwv1pg494.jpg
第一项:填写服务器从CA申请的证书文件路径,
第二项:填写服务器的私钥文件路径

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

  • 搭建私有CA机构
    创建必要文件
    wKiom1ePVO-gUM_WAACJhLnS6AY395.jpg

    生成CA机构私钥

wKioL1ePVRiA17arAAESbXE4qRQ187.jpg
         生成自签证书

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

    wKioL1ePVYKx_NZ7AAUMlU7HiGU036.jpg


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

wKiom1ePVayhadrVAAId2VQkGOs549.jpg

CA服务器签发web网站证书

QQ截图20160721090608.png

查看证书:

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

wKioL1ePVi-BGTAfAAKkW6gnMRg383.jpg

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

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

wKiom1ePVpjh44_aAADGyZ4T8Fg676.jpg
         QQ截图20160721090616.png               

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

wKioL1ePVwOBETJjAAGQph-k_1E332.jpg
利用浏览器验证https服务是否开启

wKioL1ePVyuT8T4RAAD9gWIgmGs730.jpg

点击继续浏览此网站
wKioL1ePV0_SujDgAABfUITW5kg453.jpg

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

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

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

wKiom1ePV5LT3EiMAAKyMx7TTko185.jpg


测试效果如下:

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

    wKiom1ePV-XRuLmtAAVlYKrXQa4649.jpg
    wKioL1ePWGaxkAh7AAM5rOKoUhA305.jpg


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

    wKiom1ePWKyTjV4oAAQi8PjrTkA592.jpg
    在这里可以看到http报文的响应状态码是403,禁止访问。
    在看一下其他IP地址的客户端的访问请求,如下图所示,访问一切正常!
    wKioL1ePWOrQ_xBuAAJxvArkqVk736.jpg
    到此小编已经演示完,在httpd-2.2环境和httpd-2.4环境如何解决上述问题。



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




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-247159-1-1.html 上篇帖子: apache启动时httpd: apr_sockaddr_info_get() failed for 报错 下篇帖子: 编译安装httpd2.2.4 网页 用户
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表