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

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

分别使用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版本的

wKiom1mor2ahBUlGAAAITzFEBxI371.png

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

wKiom1mor5CTRIDiAAAH5-q5uGE075.png


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

 

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

wKioL1mor52SJJKGAAAwUh8mEFo437.png

 

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

 wKiom1mor82AzDdSAAAwnVIJavw821.png

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

wKiom1mor-vA_M80AAATQVTO85g367.png

 

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

 wKioL1mor_LSt7-xAAAGAQOtkR8461.png

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

 

wKiom1mosCGAQ0A5AACqU4iLRKQ706.png

 

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

 wKiom1mosEOA56IZAAAQPYw0nIE028.png

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

 wKioL1mosETRMPUsAAANNAs-u_s223.png

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

wKiom1mosHLBQ6MmAABt4Q1WgyA290.png

 

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

 

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

server-status在主配置文件/etc/httpd/conf/httpd.conf九百多行

wKiom1mosJCBhZb7AAARz8wu7L4397.png

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

 

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

 

我们先生成一个叫做link的用户,顺便在建立一个叫做qhd的用户:

link的账号密码均为link

qhd的账号密码均为qhd

wKiom1mosKqg19TCAAApqsLsK94247.png

 

 

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

wKioL1mosKyB0tMYAABJtINL-lE792.png

 

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

wKioL1mosMTRCLJIAAAh54GbUPg577.png

 

 

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

wKiom1mosPSDIaRwAABs7T7DAh0781.png

 

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

账号验证成功,显示出了status页面

 

wKioL1mosPWyJK8-AAD643VuktQ668.png

 

 

下面进行第三小题:

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

wKiom1mosSSRJ5ZAAABazKubPzg236.png

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

 

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

wKioL1mosSiS_5jZAAAjVJkGYpE242.png

wKiom1mosVLyeoeVAAAesICrXSs072.png

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

所以,到此第一题做完了,下面进行第二题的操作。

为虚拟主机www2.link.com提供https服务,那么httpd服务需要装载一个mod_ssl模块,默认未安装。下面进行安装操作:

wKioL1mosVrguVo9AABVBT6BqO8589.png

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

wKioL1mosXLz-MvnAAAXCcI_N-Y979.png

下面的操作步骤是,搭建私有CA,并且服务器从CA申请证书:

创建必要文件和生成CA机构私钥:

wKioL1mosYvCYLkNAAAu0VBtRds775.png

生成自签证书

wKiom1mosbjAMr8sAABe8ow-XfM550.png

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

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

wKiom1mosdiRi8omAACTwjoqQ9M182.png

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

wKioL1mosd_gPvg6AAAXFh9GpcI624.png

CA签署证书:

wKiom1mosgvBt1zSAAAQvBPdOVI489.png

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

wKioL1mosg3jhRLiAAAJ017GYtw195.png

将修改以下几项:   

wKioL1mosiTCTDH6AAATNKTUesY924.png

验证修改的文件是否有语法错误,并重新加载配置:

测试虚拟主机www2的https服务是否能正常访问

显示无法验证证书,由于CA的证书还未导入到浏览器

我们可以将CA证书发到测试的机器上,并用CA证书进行测试,如下

wKiom1moslLhf72tAAAJDhil1v8825.png

显示结果为虚拟主机www2的证书通过了验证,并得以显示。




本文转自 Runs_ 51CTO博客,原文链接:http://blog.51cto.com/12667170/1961595,如需转载请自行联系原作者
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
1月前
|
数据安全/隐私保护 Docker 容器
配置Harbor支持https功能实战篇
关于如何配置Harbor支持HTTPS功能的详细教程。
59 12
配置Harbor支持https功能实战篇
|
2月前
|
JavaScript 前端开发 Java
【Azure 环境】各种语言版本或命令,发送HTTP/HTTPS的请求合集
【Azure 环境】各种语言版本或命令,发送HTTP/HTTPS的请求合集
|
4月前
|
应用服务中间件 网络安全 nginx
docker 搭建 最新版本的 gitlab,使用HTTPS访问,以及gitlab的基础使用讲解
docker 搭建 最新版本的 gitlab,使用HTTPS访问,以及gitlab的基础使用讲解
|
4月前
|
JavaScript
vue : 无法加载文件 D:\module\npm_module\npm_modules\vue.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.c
vue : 无法加载文件 D:\module\npm_module\npm_modules\vue.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.c
|
5月前
|
缓存 应用服务中间件 网络安全
nginx 日志,压缩,https功能介绍
nginx 日志,压缩,https功能介绍
|
5月前
|
网络安全 C#
C# HttpWebRequest 获取 HTTPS 网页内容
C# HttpWebRequest 获取 HTTPS 网页内容
448 0
|
5月前
|
安全 数据建模 网络安全
HTTPS加密协议详解——2023年版本
HTTPS加密协议详解——2023年版本
147 0
|
5月前
|
Shell 开发工具 数据安全/隐私保护
git上传项目一直报一个文件没有添加任何内容(git上拉去别人的项目上传到自己的仓库/error: failed to push some refs to ‘https://gitee.com/)
git上传项目一直报一个文件没有添加任何内容(git上拉去别人的项目上传到自己的仓库/error: failed to push some refs to ‘https://gitee.com/)
268 0
git上传项目一直报一个文件没有添加任何内容(git上拉去别人的项目上传到自己的仓库/error: failed to push some refs to ‘https://gitee.com/)
|
5月前
|
网络协议 数据格式
HTTP鸡础(传输协议,特点,历史版本,请求消息数据格式)
HTTP鸡础(传输协议,特点,历史版本,请求消息数据格式)
|
5月前
|
Windows
Windows【工具 01】视频下载工具BBDown.exe详细使用说明(https://github.com/nilaoda/BBDown)mp4格式无法识别问题处理(最新版本1.6.1网盘分享)
Windows【工具 01】视频下载工具BBDown.exe详细使用说明(https://github.com/nilaoda/BBDown)mp4格式无法识别问题处理(最新版本1.6.1网盘分享)
492 0