taoss
分别使用httpd-2.2和httpd-2.4实现;
    
        1、建立httpd服务,要求:
            (1) 提供两个基于名称的虚拟主机:
www1.stuX.com,页面文件目录为/web/vhosts/www1;错误日志为/var/log/httpd/www1/error_log,访问日志为/var/log/httpd/www1/access_log;
www2.stuX.com,页面文件目录为/web/vhosts/www2;错误日志为/var/log/httpd/www2/error_log,访问日志为/var/log/httpd/www2/access_log;
            (2) 通过www1.stuX.com/server-status输出其状态信息,且要求只允许提供账号的用户访问;
            (3) www1不允许192.168.1.0/24网络中的主机访问;
            
        2、为上面的第2个虚拟主机提供https服务,使得用户可以通过https安全的访问此web站点;
            (1) 要求使用证书认证,证书中要求使用国家(CN),州(Beijing),城市(Beijing),组织为(MageEdu);
            (2) 设置部门为Ops, 主机名为www2.stuX.com
 
 
实验环境
CentOS  6  1台
CentOS 7    1台
IP地址:
192.168.60.132  Centos6主机,用于安装httpd-2.2
192.168.60.138 Centos7主机,用于安装httpd-2.4
关闭Selinux
关闭防火墙
要架设一个本地httpd服务器一般需要下面2个软件程序包:
对于httpd-2.2
httpd-2.2.15-69.el6.centos.x86_64,httpd服务主程序
httpd-tools-2.2.x86_64,测试http服务的工具程序,如ab
对于httpd-2.4
httpd-2.4.6-88.el7.centos.x86_64,httpd服务主程序
httpd-tools-2.4.x86_64,测试http服务的工具程序,如ab
httpd-2.2的搭载方法
在132主机上面操作
安装httpd程序包
yum install -y httpd
yum install -y httpd-tools
 
运行服务
service httpd start
测试服务能否正常运行
 
创建放置网页文件的文件夹
[root@132 ~]# mkdir -pv /web/vhosts/{www1,www2}
mkdir: created directory `/web\'
mkdir: created directory `/web/vhosts\'
mkdir: created directory `/web/vhosts/www1\'
mkdir: created directory `/web/vhosts/www2\'
 
 
创建主页文件
[root@132 ~]# vim /web/vhosts/www1/index.html
[root@132 ~]# vim /web/vhosts/www2/index.html
 
 
 
创建放置日志的文件夹
[root@132 ~]# mkdir -pv /var/log/httpd/{www1,www2}
mkdir: created directory `/var/log/httpd/www1\'
mkdir: created directory `/var/log/httpd/www2\'
 
 
基于不同的主机名称来配置虚拟主机
编辑主配置文件
vim /etc/httpd/conf/httpd.conf
禁用DocumentRoot选项
开启NameVirtualHost选项,使用默认80端口。
编辑虚拟主机的配置文件
vim /etc/httpd/conf.d/host1.conf
#第一个虚拟主机的配置项目
<VirtualHost *:80>
        ServerName www1.stuX.com     #主机名称
        DocumentRoot "/web/vhosts/www1"        #网页文件的根目录
        <Directory "web/vhosts/www1">                #文件目录的权限设置
                Options None
                AllowOverride None
                Order allow,deny
                Allow from all            #允许所有人访问
        </Directory>
</VirtualHost>
vim /etc/httpd/conf.d/host2.conf
#第二个虚拟主机的配置选项
<VirtualHost *:80>
        ServerName www2.stuX.com
        DocumentRoot "/web/vhosts/www2"
        <Directory "web/vhosts/www2">
                Options None
                AllowOverride None
                Order allow,deny
                Allow from all
        </Directory>
</VirtualHost>
重启服务
测试访问
修改测试主机的hosts文件
 
浏览器进行访问
 
配置错误日志以及访问日志
 
修改www1主机的配置文件
 
<VirtualHost *:80>
        ServerName www1.stuX.com
        DocumentRoot "/web/vhosts/www1"
        <Directory "web/vhosts/www1">
                Options None
                AllowOverride None
                Order allow,deny
                Allow from all
        </Directory>
        #访问日志的配置项
        CustomLog "logs/www1/access_log" combined
        #错误日志的配置项
        ErrorLog "logs/www1/error_log"
        #错误日志的级别
        LogLevel info
</VirtualHost>
 
修改www2主机的配置文件
重启服务
测试www1的访问日志功能正常
测试www2的访问日志功能正常
 
server-status状态页面的设置
检查status模块是否以及装载进来
确保主配置文件下,该模组被装载。
/etc/httpd/conf/httpd.conf
编辑虚拟主机1的配置文件
vim /etc/httpd/conf.d/host1.conf
 
server-status状态页面的访问质询设置
 
使用htpasswd工具创建访问用户数据库
创建用户tom
htpasswd -c /tmp/test.users tom
添加用户jack
htpasswd /tmp/test.users jack
移动此文件到/etc/httpd/conf.d目录下
mv /tmp/test.users /etc/httpd/conf.d/.htpasswd
 
编辑配置文件
vim /etc/httpd/conf.d/host1.conf
保存并重启服务。
认证质询功能开启。
 
为虚拟主机设置黑名单
vim /etc/httpd/conf.d/host1.conf
重启服务
用60.1的主机测试不能访问。
 
用其他主机测试可访问。
 
 
为www1.stux.com配置https
 
CA认证模型
实验环境
CentOS  6  1台
CentOS 7    2台
IP地址:
192.168.60.132  Centos6主机,安装httpd-2.2,作为网站服务器
192.168.60.137 Centos7主机,用于作为CA证书服务器
192.168.60.1 Win10主机,用做访问客户机。
关闭Selinux
关闭防火墙
 
在CA证书服务器上配置CA环境
在137主机上操作
cd /etc/pki/CA/
(umask 077;openssl genrsa -out private/cakey.pem 2048)
生成自签证书
openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 365
在httpd主机上安装ssl模块
132主机操作
安装mod_ssl模块
yum install -y mod_ssl
创建ssl目录,用于放置私钥文件。
mkdir /etc/httpd/ssl
cd /etc/httpd/ssl
创建私钥文件
(umask 077;openssl genrsa -out httpd_key.pem 1024)
生成签署请求文件
openssl req -new -key httpd_key.pem -out httpd_csr.pem    
把上面的签署文件发送到CA服务器137主机上。
scp httpd_crt.pem root@192.168.60.137:/tmp/
删除签署请求文件。
 
在CA证书服务器上签署证书
创建序列号文件
touch index.txt serial
echo 01 > serial
签署证书
openssl ca -in /tmp/httpd_csr.pem -out certs/httpd_crt.pem
以及签署过的证书,要放在certs/目录下
 
把刚刚签署后的证书发回给132主机。
scp certs/httpd_crt.pem 192.168.60.132:/etc/httpd/ssl
删除签署请求文件
 
在132主机操作
此时证书文件放在/etc/httpd/ssl目录下的httpd_crt.pem文件
编辑ssl配置文件
vim /etc/httpd/conf.d/ssl.conf
重启服务
 
在win10用户机端操作
把ca服务器的证书复制到win10系统,然后导入到浏览器中。
scp root@192.168.60.137:/etc/pki/CA/cacert.pem /var/ftp/pub
导入ca证书到浏览器的证书管理器。
 
 
 
 
 
已经通过认证。
 
 
httpd-2.4的搭载方法
 
实验环境
CentOS 7    1台
IP地址:
192.168.60.138 Centos7主机,用于安装httpd-2.4
关闭Selinux
关闭防火墙
要架设一个本地httpd服务器一般需要下面2个软件程序包:
httpd-2.4.6-88.el7.centos.x86_64,httpd服务主程序
httpd-tools-2.4.x86_64,测试http服务的工具程序,如ab
 
 
安装httpd-2.4(在138主机上面操作)
yum install -y httpd httpd-tools
 
运行服务
systemctl start httpd.service
测试连接成功,说明服务能正常启动。
创建网页文件根目录
mkdir -pv /web/vhosts/{www1,www2}
创建主页文件
 
vim /web/vhosts/www1/index.html
vim /web/vhosts/www2/index.html
 
创建日志文件夹
mkdir -pv /var/log/httpd/{www1,www2}
 
配置虚拟主机
vim conf.d/host1.conf
vim conf.d/host2.conf
 
修改win10中的hosts文件
 
测试访问
 
配置访问日志与错误日志
vim conf.d/host1.conf
vim conf.d/host2.conf
 
测试访问日志功能是否正常
略过。。
 
Server-status状态页面的设置
 
检查status模块是否被装载
httpd -M|grep status
编辑www1主机的配置文件
vim conf.d/host1.conf
 
测试访问成功。
 
 
 
 
Server-status状态页面的访问质询设置
 
使用htpasswd工具创建访问用户的数据库
 
 
编辑配置文件
vim conf.d/host1.conf
 
 
测试成功。
 
 
设置访问黑名单
 
vim conf.d/host1.conf
 
 
 
 
 
 
 
为www2主机配置CA证书服务器
 
实验环境
CentOS 7    2台
IP地址:
192.168.60.138  Centos7主机,安装httpd-2.4,作为网站服务器
192.168.60.137 Centos7主机,用于作为CA证书服务器
192.168.60.1 Win10主机,用做访问客户机。
关闭Selinux
关闭防火墙
 
在CA证书服务器上配置CA环境
在137主机上操作
cd /etc/pki/CA/
(umask 077;openssl genrsa -out private/cakey.pem 2048)
生成自签证书
openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 365
在httpd主机上安装ssl模块
138主机操作
安装mod_ssl模块
yum install -y mod_ssl
创建ssl目录,用于放置私钥文件。
mkdir /etc/httpd/ssl
cd /etc/httpd/ssl
创建私钥文件
(umask 077;openssl genrsa -out httpd_key.pem 1024)
生成签署请求文件
openssl req -new -key httpd_key.pem -out httpd_csr.pem    
把上面的签署文件发送到CA服务器137主机上。
scp httpd_csr.pem root@192.168.60.137:/tmp/
删除签署请求文件。
 
在CA证书服务器上签署证书
创建序列号文件
touch index.txt serial
echo 01 > serial
签署证书
openssl ca -in /tmp/httpd_csr.pem -out certs/httpd_crt.pem
以及签署过的证书,要放在certs/目录下
 
把刚刚签署后的证书发回给138主机。
scp certs/httpd_crt.pem 192.168.60.138:/etc/httpd/ssl
删除签署请求文件
 
在138主机操作
此时证书文件放在/etc/httpd/ssl目录下的httpd_crt.pem文件
编辑ssl配置文件
vim /etc/httpd/conf.d/ssl.conf
重启服务
 
在win10用户机端操作
把ca服务器的证书复制到win10系统,然后导入到浏览器中。
scp root@192.168.60.137:/etc/pki/CA/cacert.pem /var/ftp/pub
导入ca证书到浏览器的证书管理器。
 
 
 
 
 
已经通过认证。
 

分类:

技术点:

相关文章:

  • 2021-11-05
  • 2021-09-17
  • 2021-12-02
  • 2021-10-03
  • 2021-09-07
  • 2021-12-27
  • 2021-07-24
猜你喜欢
  • 2021-09-17
  • 2021-10-07
  • 2021-12-07
  • 2021-12-15
  • 2021-08-31
  • 2021-11-05
  • 2021-11-06
相关资源
相似解决方案