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

分别使用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的证书通过了验证,并得以显示。

时间: 2024-08-05 07:05:04

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

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

博客作业:分别使用httpd-2.2和httpd-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 平台,使用 httpd 2.2 和 httpd 2.4 部署 web服务器

1.查看当前的系统 uname -r cat /etc/redhat-release 2.通过rpm 安装httpd yum install httpd a.安装完成后,参看相应的配置文件. /etc/httpd/conf/httpd.conf # 主配置文件. A.修改参数 Listen [IP:]port   # 可以出现多次. ServerName www.njjn.com:80 DoucumentRoot /var/www/html      # 文档主目录 NameVirtualHos

Linux 中httpd基于文件的用户的访问控制和CGI

基于用户访问控制(这里控制的是整个页面控制)         用户认证类型:             基本认证:Basic             摘要认证:digest,是否明文还是密文的控制. 虚拟用户:仅用于访问某服务和获取资源的凭证:         用户帐号密码存放位置:.htpasswd 这个文件用户名是明文的,密码是加密的.这个文件的名字也是你自己取的,一般我们不改动.htpasswd存放在httpd配置文件下即可                 实例:我们这里基于文件的认证(文件

httpd启动报错httpd: Could not reliably determine the server's fully qualified domain name

安装完apache-httpd后,启动时报错如下: [[email protected] app]# service httpd start Starting httpd: httpd: apr_sockaddr_info_get() failed for ppt httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName  [  OK  

TXLSReadWriteII2版本导出Excel文件:

//TXLSReadWriteII2版本导出Excel文件: procedure TForm1.N1Click(Sender: TObject); var i: Integer; aSaveDialog: TSaveDialog; aFileName, aStampTime: AnsiString; aXlsObj: TXLSReadWriteII2; p: PDataRec; begin aSaveDialog := TSaveDialog.Create(Self); try aSaveDia

Linux用户和组管理,查看软件缓存,通过命令查看硬件信息(cpu,版本,序列号,内存,主板,内核等)

 通过修改/etc/inittab.通过这个文件修改系统的启动方式. ls –l /etc/ | more   (管道),将前面的结果交给后面的命令进行处理. 在linux中遇到问题使用man命令. 查找文件信息并将文件存储到一个制定的文件中. ls –la > "a.txt" 创建组名: 创建组: 查看Linux中所有组的信息:cat /etc/group | more 其中root:x:0 root:表示组名,x:表示加密后的权限声明,0:表示root组的id号. 7创建

解决Wamp各版本中 Apache 文件列表图标无法显示

Edit the following file manually and change the path to the icons folder (it appears 2 times in the file) File to edit: \wamp\bin\apache\apache2.2.6\conf\extra\httpd-autoindex.conf Change the paths: C:/Program Files/Apache Software Foundation/Apache2

linux 下 svn 创建版本库及文件导入和导出

1.安装svn服务 # yuminstall subversion 2.新建一个目录用于存储SVN所有文件 #mkdir -p  /cbroot/svnserver/cbweb 3.在上面创建的文件夹中为项目 project_1 创建一个版本仓库 # svnadmin create /cbroot/svnserver/cbweb/trunk 4.为项目配置权限 (1)svnserve.conf 是主配置文件 vim /cbroot/svnserver/cbweb/trunk/conf/svnse

权限管理——版本1

权限管理--版本1 1.完成目标: 1.获取当前请求的url: 使用 request.path_info 2.获取session中的保存的用户权限: 使用request.session.get().不能request.session[],因为可能没数据. 3.设置白名单,获取到白名单的放行数据,和用户所拥有的权限url,匹配. 如果匹配,就不需要经过权限的检查. 4.用户登录后,把用户所拥有的url权限和白名单的权限对比.有就可以直接访问,没有就需要经过:权限的判断. 达成的结果: 1.当前登录