Httpd部分高级应用配置

  前文介绍了httpd的基本配置,本文介绍部分高级应用的配置。


实验前提:

  关闭防火墙和SELinux

  关闭中心主机。


实验环境:

服务器:

  系统版本:CentOS6.6 x86_64

  服务软件版本:httpd2.2CentOS 6.6镜像提供rpm包;

客户端:

  系统版本:Windows7x86_64

  浏览器:Chrone44

  域名解析:由本地Hosts文件实现,不再配置DNS服务器(详情见博客内DNS相关文章);


一、虚拟主机;

1、基于端口的虚拟主机;

站点A

  FQDNwww.chencer.org

  端口:80

  站点文件:/web/www/index.html

站点B

  FQDNwww.chencer.org

  端口:8080

  站点文件:/web/port/index.html


实验配置:

主配置文件

# vim /etc/httpd/conf/httpd.conf
> Listen 80
> Listen 8080
>
> <VirtualHost192.168.1.10:80>
>     ServerName www.chencer.org
>     DocumentRoot"/web/www"
> </VirtualHost>
>
> <VirtualHost192.168.1.10:8080>
>     ServerName www.chencer.org
>     DocumentRoot"/web/port"
> </VirtualHost>


提供网页文件:

# mkdir -p /web/{www,port}
# echo "www.chencer.org:80" > /web/www/index.html
# echo "www.chencer.org:8080" > /web/port/index.html


检查配置文件语法,重启服务,查看监听端口:

# httpd �t
# service httpd restart
# ss �tnl |grep :80

80/tcp和8080/tcp被监听:

wKioL1XEtkvQfK-mAAB2cKbkBis738.jpg 


客户端测试:

Hosts文件添加解析记录:

wKiom1XEtG6zQotSAAE3_IAvttM190.jpg


站点A

wKioL1XEtoaTiSfAAABVszrq7EY577.jpg


站点B

wKiom1XEtJew5fGGAABeYEMcwD4741.jpg


2、基于IP的虚拟主机;

站点A

  FQDNwww.chencer.org

  IP192.168.1.10

  站点文件:/web/www/index.html

站点B

  FQDNbbs.chencer.org

  IP192.168.1.11

  站点文件:/web/bbs/index.html


实验配置:

主配置文件:

> # vim /etc/httpd/conf/httpd.conf
> <VirtualHost 192.168.1.10:80>
>     ServerName www.chencer.org
>     DocumentRoot "/web/www"
> </VirtualHost>
>
> <VirtualHost 192.168.1.11:80>
>     ServerName bbs.chencer.org
>     DocumentRoot "/web/bbs"
> </VirtualHost>


提网页文件:

# mkdir -p /web/{www,bbs}
# echo "www.chencer.org" > /web/www/index.html
# echo "bbs.chencer.org" > /web/bbs/index.html


检查配置文件语法,重启服务:

# httpd �t
# service httpd restart


客户端测试:

Hosts文件添加解析记录:

wKioL1XEt6HBon_1AAFf9iN7_vg050.jpg


站点A

wKioL1XEt7GwqjkXAABPV2_3eDM591.jpg


站点B

wKiom1XEtcShgPqEAABQAAZTXF4667.jpg


3、基于主机名的虚拟主机;

站点A

  FQDNwww.chencer.org

  站点文件:/web/www/index.html

站点B

  FQDNblog.chencer.org

  站点文件:/web/blog/index.html

 

实验配置:

主配置文件:

> # vim/etc/httpd/conf/httpd.conf
> NameVirtualHost192.168.1.10:80
>
> <VirtualHost192.168.1.10:80>
>     ServerName www.chencer.org
>     DocumentRoot "/web/www"
> </VirtualHost>
> 
> <VirtualHost192.168.1.10:80>
>     ServerName blog.chencer.org
>     DocumentRoot "/web/blog"
></VirtualHost>


提网页文件:

# mkdir -p /web/{www,blog}
# echo "www.chencer.org" > /web/www/index.html
# echo "blog.chencer.org" > /web/blog/index.html


检查配置文件语法,重启服务:

# httpd �t
# service httpd restart


客户端测试:

Hosts文件添加解析记录:

wKioL1XEuKaDXzzUAAFiLkzJiM0884.jpg

 

A主机:

wKioL1XEuLixEtaTAABPfaT7src455.jpg


B主机:

wKiom1XEtsXhpCUMAABSa5SS4HA972.jpg


二、基于用户的访问控制;

用户认证:

  基本认证:Basic

  摘要认证:Digest


虚拟用户:仅用于访问某服务或获取某资源的凭证;

  文本文件:*.htpasswd

  SQL数据库

  dbm:数据库引擎,提供API

  ldap


authenticationprovider:账号和密码的存储机制;

  authn


authorizationprovider: 授权


# htpasswd:
    -c:如果此文件事先不存在,则创建;注意,只能在创建第一个用户时使用;
    -m:以md5的格式编码存储用户的密码信息;
    -D:删除指定用户;


实例:

站点A

  FQDNwww.chencer.org/admin

  允许用户jimtom访问;

 

站点B

  FQDNops.chencer.org/admin

  仅允许ops组访问,jim属于ops组;

 

实验配置:

主配置文件:

# vim/etc/httpd/conf/httpd.conf
> NameVirtualHost192.168.1.10:80
>
> <VirtualHost192.168.1.10:80>
>     ServerName www.chencer.org
>     DocumentRoot /web/www
> <Directory"/web/www/admin">
>     Options none
>     AllowOverride AuthConfig
>     AuthType Basic    //认证类型为基本认证;
>     AuthName " Admin Area."    //质疑提示信息;
>     AuthUserFile /etc/httpd/conf/.htpasswd    //认证文件位置;
>     Require valid-user
> </Directory>
> </VirtualHost>
> 
> <VirtualHost192.168.1.10:80>
>     ServerName ops.chencer.org
>     DocumentRoot /web/ops
> <Directory"/web/ops/admin">
>     Options none
>     AllowOverride AuthConfig
>     AuthType Basic
>     AuthName " Admin Area."
>     AuthUserFile /etc/httpd/conf/.htpasswd
>     AuthGroupFile /etc/httpd/conf/.htgroup
>     Require group ops
> </Directory>
> </VirtualHost>


生成认证文件:

创建用户:

# htpasswd -mc /etc/httpd/conf/.htpasswd jim
# htpasswd -m /etc/httpd/conf/.htpasswd tom

wKioL1XEukzwr-m_AACRy9Bf7FE458.jpg


jim加入ops组:

# echo "ops: jim " > /etc/httpd/conf/.htgroup


提供网页文件:

# mkdir -p /web/{www,ops}/admin
# echo "www.chencer.org/admin" > /web/www/admin/index.html
# echo "ops.chencer.org/admin" > /web/ops/admin/index.html


检查配置文件语法,重启服务;

# httpd �t
# service httpd restart


客户端测试:

Hosts文件添加解析记录:

wKiom1XEuK6ikPxsAAFepJQL6TA734.jpg


jim访问站点A

wKioL1XEur3z5QLKAADro37qgww917.jpgwKioL1XEusvypSUbAABeMXhKenc479.jpg



jim访问站点B

wKioL1XEuuDzvx_tAAD1wfMKtf4642.jpgwKiom1XEuO-w_FmSAABbrW39xDs501.jpg



tom访问站点A

wKioL1XEux-AJV6XAADuJRgLX1k123.jpgwKioL1XEuyyAE2hjAABeMXhKenc817.jpg



tom访问站点B

wKiom1XEuUXTmw1TAADtp-eG9No869.jpgwKioL1XEu06jcS4SAAEBqUMpGos992.jpg



三、Https

httpd

  ssl模块:mod_ssl,单独成包


  ssl会话基于IP地址创建,所以,每一个IP仅创建一个SSL会话;

 

ssl握手要完成的工作:

  交换协议版本号

  选择双方都支持的加密方式

  客户端对服务器端实现身份验正

  密钥交换


https协议:基于SSL二进制编码,443/tcp

  openssl s_client

 

客户端验正服务器端证书:

  有效性检测:证书是否仍然在有效期内

  CA的可信度检测

  证书的完整性检测

  持有者的身份检测


实例:

站点:www.chencer.org提供https服务;


安装mod_ssl模块:

# yuminstall mod_ssl
# rpm �ql mod_ssl

wKiom1XEudOhmgtCAACh2MBVr0E433.jpg

# /etc/httpd/conf.d/ssl.conf    :mod_ssl配置文件;


服务器自建CA,自签证书(详细信息见自建CA博客):

# (umask 077 ; openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)
# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3655
# touch /etc/pki/CA/{index.txt,serial}
# echo 01 > /etc/pki/CA/serial

wKiom1XEu1ax7Q0ZAAKC8dp8qb8704.jpg

创建证书,签署请求;

# (umask 077 ; openssl genrsa -out /etc/httpd/httpd.key 2048)
# openssl req -new -key/etc/httpd/httpd.key -out /etc/httpd/httpd.csr
# openssl ca -in/etc/httpd/httpd.csr -out /etc/httpd/httpd.crt -days 3650

wKioL1XEvWmSR8KWAAJzBKnC8t8436.jpg

wKiom1XEu4Giz2CrAAJmtXIcyKc610.jpg


配置mod_ssl模块配置文件:

# vim/etc/httpd/conf.d/ssl.conf
DocumentRoot "/web/www"
ServerName www.chencer.org:443
SSLCertificateFile /etc/httpd/httpd.crt
SSLCertificateKeyFile /etc/httpd/httpd.key


提供网页文件:

# mkdir -p /web/www
# echo "https:www.chencer.org:443" > /web/www/index.html


检查配置文件语法,重启服务,查看监听端口;

# httpd �t
# service httpd restart
# ss �tnl | grep :443


wKioL1XEvZihVQlTAABwAU3xQH4240.jpg


客户端访问测试:

下载安装CA证书,cacert.pem重命名为cacert.crt

wKiom1XEu76AvQ0ZAAP5N5gGhIc354.jpg

访问站点:

wKiom1XEu9Hy3onYAAGEh50GTLk744.jpg


本文出自 “小马的学习记录” 博客,请务必保留此出处http://masachencer.blog.51cto.com/8683770/1682796

转载于:https://my.oschina.net/masachencer/blog/540878

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值